据我了解,它显示带有参数的命令,或者在不可用时显示方括号中的命令。
但是,诸如乘客工作者 ruby 实例之类的进程的名称从何而来,它们显示为:
root@XXX:~# ps aux | grep Rails
webuser 2273 0.0 3.2 86968 57500 ? S 17:38 0:00 Rails: /var/websites/app
...我如何启动进程并设置这样的字符串?
答案1
我相信它是通过 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 帖子关于在没有第三方库的情况下做到这一点。
答案2
通常你需要直接改变 argv,这是一个例子: http://stupefydeveloper.blogspot.com/2008/10/linux-change-process-name.html