在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) 下载python包的最佳方法是什么?它是pypi的依赖关系,可以在另一台机器上进行离线安装?使用pip或easy_install有什么简单的方法吗?我正在尝试在没有连接到互联网的FreeBSD盒子上安装请求库.
正如标题所说,我正在运行多个游戏服务器,并且每个游戏服务器都具有相同name
但不同PID
的port
数量.我想匹配PID
正在侦听某个端口的服务器,然后我想杀死这个进程.我需要它来完成我的bash脚本.
这甚至可能吗?因为它没有在网上找到任何解决方案.
我正在不同的操作系统上测试我们的服务器应用程序(编写的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有什么特别之处吗?
任何提示都表示赞赏,谢谢.
我试图运行以下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) 像'ps'和'top'这样的工具会报告各种内存使用情况,例如VM大小和Resident Set Size.但是,这些都不是"真正的"内存使用情况:
我发现Linux报告的私有脏RSS是最接近"真实"内存使用的东西.这可以通过对所有Private_Dirty
值求和来获得/proc/somepid/smaps
.
但是,其他操作系统是否提供类似功能?如果没有,有哪些替代方案?特别是,我对FreeBSD和OS X感兴趣.
有人可以解释为什么我从下面得到退出代码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失败,但上面的行给出零,所以它应该是成功,我会说.
我在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) 我有一个小的Python应用程序,通过启动subprocess.Popen
,以环境变量的形式获取一些参数.我通过将环境结构传递给Popen
调用来完成此操作.然后程序通过读取变量os.getenv
.
或者更确切地说,它曾经以这种方式阅读它们.在Windows上,它工作正常.但是在我们的FreeBSD服务器上,os.getenv
返回None
我们传入的所有参数.奇怪的是,os.environ
它的值很好 - 实际上,简单地切换所有os.getenv('foo')
调用,os.environ['foo']
使得两个平台上的一切都正常工作.
为什么这些值不同?什么时候适合另一个?
我的升级库有问题.即时通讯使用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)
谢谢