Linux
ps aux
的“COMMAND”欄位中的名稱來自哪裡?
我知道它會顯示帶有參數的命令,或者在不可用時顯示方括號中的命令。
但是,諸如乘客工作人員 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