标签: freebsd

如何在Mac上获取GNU的readlink -f的行为?

在Linux上,该readlink实用程序接受一个-f跟随其他链接的选项.这似乎不适用于Mac和可能基于BSD的系统.相当于什么?

这是一些调试信息:

$ which readlink; readlink -f
/usr/bin/readlink
readlink: illegal option -f
usage: readlink [-n] [file ...]
Run Code Online (Sandbox Code Playgroud)

macos freebsd sh

341
推荐指数
13
解决办法
11万
查看次数

Python包离线安装

下载python包的最佳方法是什么?它是pypi的依赖关系,可以在另一台机器上进行离线安装?使用pip或easy_install有什么简单的方法吗?我正在尝试在没有连接到互联网的FreeBSD盒子上安装请求库.

python freebsd pip easy-install python-requests

129
推荐指数
11
解决办法
18万
查看次数

确定侦听某个端口的进程pid

正如标题所说,我正在运行多个游戏服务器,并且每个游戏服务器都具有相同name但不同PIDport数量.我想匹配PID正在侦听某个端口的服务器,然后我想杀死这个进程.我需要它来完成我的bash脚本.

这甚至可能吗?因为它没有在网上找到任何解决方案.

unix port freebsd pid

94
推荐指数
4
解决办法
21万
查看次数

InetAddress.getLocalHost()抛出UnknownHostException

我正在不同的操作系统上测试我们的服务器应用程序(编写的Java),并认为由于良好的Java集成,OpenSolaris(2008.11)将是最不麻烦的.事实证明我错了,因为我最终得到了一个UnknownHostException

try {
  computerName = InetAddress.getLocalHost().getHostName();
  if (computerName.indexOf(".") > -1)
    computerName = computerName.substring(0,
        computerName.indexOf(".")).toUpperCase();
} catch (UnknownHostException e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

输出是:

java.net.UnknownHostException: desvearth01: desvearth01
    at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
Run Code Online (Sandbox Code Playgroud)

但是,nslookup desvearth01返回正确的IP地址,并按预期nslookup localhost返回127.0.0.1.此外,相同的代码在FreeBSD上完美运行.我不知道OpenSolaris有什么特别之处吗?

任何提示都表示赞赏,谢谢.

java freebsd opensolaris

82
推荐指数
3
解决办法
9万
查看次数

检查shell脚本中的字符串是否既不是空也不是空格

我试图运行以下shell脚本,它应该检查字符串既不是空格也不是空.但是,我得到的所有3个字符串的输出都相同.我尝试过使用"[["语法,但无济于事.

这是我的代码:

str="Hello World"
str2=" "
str3=""

if [ ! -z "$str" -a "$str"!=" " ]; then
        echo "Str is not null or space"
fi

if [ ! -z "$str2" -a "$str2"!=" " ]; then
        echo "Str2 is not null or space"
fi

if [ ! -z "$str3" -a "$str3"!=" " ]; then
        echo "Str3 is not null or space"
fi
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

# ./checkCond.sh 
Str is not null or space
Str2 is not null or space
Run Code Online (Sandbox Code Playgroud)

bash shell freebsd

82
推荐指数
5
解决办法
24万
查看次数

一种确定进程"真实"内存使用情况的方法,即私有脏RSS?

像'ps'和'top'这样的工具会报告各种内存使用情况,例如VM大小和Resident Set Size.但是,这些都不是"真正的"内存使用情况:

  • 程序代码在同一程序的多个实例之间共享.
  • 共享库程序代码在使用该库的所有进程之间共享.
  • 一些应用程序分离进程并与它们共享内存(例如,通过共享内存段).
  • 虚拟内存系统使VM大小报告几乎无用.
  • 当一个进程被换出时,RSS为0,这使得它不是很有用.
  • 等等

我发现Linux报告的私有脏RSS是最接近"真实"内存使用的东西.这可以通过对所有Private_Dirty值求和来获得/proc/somepid/smaps.

但是,其他操作系统是否提供类似功能?如果没有,有哪些替代方案?特别是,我对FreeBSD和OS X感兴趣.

linux memory macos memory-management freebsd

49
推荐指数
6
解决办法
6万
查看次数

为什么用grep -q退出代码141?

有人可以解释为什么我从下面得到退出代码141?

#!/usr/bin/bash

set -o pipefail

zfs list | grep tank
echo a ${PIPESTATUS[@]}

zfs list | grep -q tank
echo b ${PIPESTATUS[@]}

cat /etc/passwd | grep -q root
echo c ${PIPESTATUS[@]}
Run Code Online (Sandbox Code Playgroud)

我明白了

...
a 0 0
b 141 0
c 0 0
Run Code Online (Sandbox Code Playgroud)

从我的理解退出代码141失败,但上面的行给出零,所以它应该是成功,我会说.

linux bash freebsd

35
推荐指数
2
解决办法
2万
查看次数

PostgreSQL与Ansible失败的对等身份验证

我在FreeBSD上运行PostgreSQL 9.3.FreeBSD pgsql用作PostgreSQL的默认系统用户.我/usr/local/pgsql/data/pg_hba.conf看起来像这样:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             pgsql                                   peer
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
Run Code Online (Sandbox Code Playgroud)

使用此配置,我可以在pgsql没有密码的情况下连接到数据库.

$ su pgsql
$ psql template1
template1=# \l
                         List of databases
...
Run Code Online (Sandbox Code Playgroud)

这按预期工作.

在远程计算机上,我有一个Ansible任务在FreeBSD服务器上创建数据库.

- name: Create the postgresql database
  postgresql_db: name=mydatabase login_user=pgsql
Run Code Online (Sandbox Code Playgroud)

执行此任务失败并显示错误Peer authentication failed for user "pgsql".

PLAY [web] ********************************************************************

GATHERING FACTS ***************************************************************
ok: [host.example.org]

TASK: [database | Create the postgresql database] ***************************** …
Run Code Online (Sandbox Code Playgroud)

authentication postgresql freebsd ansible ansible-playbook

35
推荐指数
5
解决办法
1万
查看次数

os.environ ['foo']什么时候不匹配os.getenv('foo')?

我有一个小的Python应用程序,通过启动subprocess.Popen,以环境变量的形式获取一些参数.我通过将环境结构传递给Popen调用来完成此操作.然后程序通过读取变量os.getenv.

或者更确切地说,它曾经以这种方式阅读它们.在Windows上,它工作正常.但是在我们的FreeBSD服务器上,os.getenv返回None我们传入的所有参数.奇怪的是,os.environ它的值很好 - 实际上,简单地切换所有os.getenv('foo')调用,os.environ['foo']使得两个平台上的一切都正常工作.

为什么这些值不同?什么时候适合另一个?

python windows freebsd environment-variables

34
推荐指数
1
解决办法
1万
查看次数

错误:提升禁用线程

我的升级库有问题.即时通讯使用freebsd并使用端口安装我的提升.Boost版本是:1.45,我使用g ++ 47作为编译器.此外,我从来没有在那里定义过BOOST DISABLE THREADS:/usr/local/include/boost/config/user.hpp.而且我的错误确切地说是:

 /usr/local/include/boost/config/requires_threads.hpp:29:4: error: #error "Threading    support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" 
Run Code Online (Sandbox Code Playgroud)

明确但在哪里?我的编译命令;

 g++47 -O3 -Wall -std=c++0x   -I. -Iinclude -I../include -I/usr/local/include   -c -o     Application.o src/Application.cpp
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ boost freebsd

33
推荐指数
2
解决办法
2万
查看次数