我遇到了一个问题,我的一些Ubuntu / Debian服务器没有显示在top或ps中传递给rake的参数.我已将此问题跟踪到/ proc / [pid] / cmdline给出的输出变化.这个文件似乎可以控制ps和top显示的内容.在正确显示参数的服务器上,cmdline文件的内容类似于:
ruby^@/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@log_file_tailer:run^@
但是,在不显示rake参数的服务器上,cmdline的输出看起来像
/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@ ^@^@^@^@^@
也就是说,文件的内容长两行,但不包含有关传递给rake的参数的任何信息.
FWIW,我用的两个服务器以不太有用的格式输出cmdline(缺少参数的那个)正在运行
Linux版本2.6.32-5-amd64(Debian 2.6.32-46)(dannf@debian.org)(gcc版本4.3.5(Debian 4.3.5-4))#1 SMP Sun Sep 23 10:07:46 UTC 2012
和
Linux版本3.2.0-23-通用(buildd @ crested)(gcc版本4.6.3(Ubuntu / Linaro 4.6.3-1ubuntu4))#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012
有趣的是,对于大多数命令,这些服务器似乎都能正确显示完整的命令行,包括参数,不包括rake.
有谁知道如何在这些服务器上输出完整的命令行,输出到cmdline?我非常希望这不需要整个内核的重新编译(我很少有经验).
– 编辑 –
据推测,它是soley rake负责设置/ proc / [pid] / cmdline的内容,但这并不符合我们运行相同版本的rake(0.8.7)的事实那些执行和不提供rake调用的命令行参数的服务器.
简短的回答是:你做不到.
只有进程本身has any influence上的内容为/ proc / $pid / cmdline.一些工具(ab)使用它来覆盖top和ps显示的内容.所以这些rake实例都是这样做的,或者它们根本就没有任何参数.
如果rake使用了这个技巧,并且您不希望它,也许rake文档会告诉您如何禁用此行为.