如何让/ proc / / cmdline包含命令参数?

我遇到了一个问题,我的一些Ubuntu / Debian服务器不显示传递给rake顶部ps的参数。 我已经把这个问题跟踪到了/ 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)([email protected])(gcc版本4.3.5(Debian 4.3.5-4))#1 SMP Sun Sep 23 10:07:46 UTC 2012

Linux版本3.2.0-23-generic(buildd @ crested)(gcc版本4.6.3(Ubuntu / Linaro 4.6.3-1ubuntu4))#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012

有趣的是,这些服务器似乎正确地显示完整的命令行,包括参数,我看到大多数命令,我看到排除耙子。

有谁知道我如何能得到完整的命令行,包括参数,输出到这些服务器上的cmdline? 我非常希望这不需要整个内核的重新编译(我有一点宝贵的经验)。

– 编辑 – 据推测,这是犁耙是负责设置/ proc / [pid] / cmdline的内容,但这并不嘲笑事实,我们正在运行相同版本的耙0.8.7)在服务器上,不会给我们由rake调用的命令行参数。

简短的回答是:你不能。

只有进程本身对/proc/$pid/cmdline的内容有任何影响 。 一些工具(ab)使用这个来覆盖顶部和ps显示。 所以无论是那些rake实例都这样做了,或者他们根本就没有任何争论。

如果rake使用这个技巧,而你不想要它,也许rake文档会告诉你如何禁用这个行为。