在 GNU/Linux 中给进程一个特定的名称?

Ale*_*lex 11 linux ubuntu process

如何启动一个进程,以便它在ps命令中具有特定的标识符?

UPD:我在一个机器上运行了几台服务器。它们中的大多数处于部署模式。然而,一个正在开发中。所有服务器都是 Pythonic,问题是所有服务器都列在pythonps,这使得killall开发中的服务器不可能保留其他服务器。

UPD:正如 David 和 GNUix 所建议的,我为每个服务器创建了指向 Python 解释器和 bash 脚本的符号链接。

GNU*_*Uix 7

创建符号链接应该可以解决问题,但是,如果我们知道疾病而不是症状会更有帮助。你到底想做什么?因为可能有更好的方法

gnuix@defiant)-(08:11pm-:-06/10)--
(~)./0012
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14020 pts/1    00:00:00 0012
14021 pts/1    00:00:00 ps
(gnuix@defiant)-(08:11pm-:-06/10)--
(~)ln -s 0012 weird
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)./weird 
my weird program name
  PID TTY          TIME CMD
 7805 pts/1    00:00:00 zsh
14046 pts/1    00:00:00 weird
14047 pts/1    00:00:00 ps
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)
Run Code Online (Sandbox Code Playgroud)

更新: 根据您可以获得的额外信息(我确定有一种更简单的方法,但目前我没有想到)让您的服务器在启动时将它们的 PID 写入文件,然后您可以 kill -9 | cat /var/run/devserver.pid 但这将是一个编程问题:)

再次更新: 您还可以在启动服务器时执行一些 shell 技巧来获取服务器的 PID,在我的脑海中,您可以创建一个名为 startmyserver 的 shell 函数,例如,它将包装您用来启动服务器的命令,但是还捕获 $! 到基于启动名称的文件——然后我们谈论的是“入站”@ServerFault 的 shell 脚本。:-)


Dav*_*ley 3

您可以重命名要运行的二进制文件。您可能只使用二进制文件的符号链接就可以逃脱。

如果您确实想更改名称,最好的方法是使用一个简单的包装器来设置 argv,然后执行您想要运行的进程。现在没有时间给你一些示例代码,但是大约 10 小时后大声喊叫,我会看看我能做什么。