Linux

ps aux的“COMMAND”欄位中的名稱來自哪裡?

  • June 3, 2011

我知道它會顯示帶有參數的命令,或者在不可用時顯示方括號中的命令。

但是,諸如乘客工作人員 ruby​​ 實例之類的程序的名稱從何而來,它們顯示為:

root@XXX:~# ps aux | grep Rails
webuser    2273  0.0  3.2  86968 57500 ?        S    17:38   0:00 Rails: /var/websites/app

…以及如何啟動程序並設置這樣的字元串?

我相信它是通過 setproctitle 函式完成的。

#include <sys/types.h>
#include <unistd.h>
void
setproctitle(const char *fmt, ...);

The setproctitle() library routine sets the process title that appears on
the ps(1) command.

特別是對於 Ruby,有一篇關於在沒有第三方庫的情況下執行此操作的stackoverflow 文章。

通常你需要直接改變argv,這裡有一個例子: http ://stupefydeveloper.blogspot.com/2008/10/linux-change-process-name.html

引用自:https://serverfault.com/questions/276793