我经常想终止那些我认为已经更改了命令名称的进程(我想过setproctitle()
或类似的事情)。
显然pkill
,、pgrep
和朋友不会读取新的命令名称(即 ruby 进程重命名其命令,pkill 仍然将其视为ruby
和而不是delayed_job
)。
但是ps
却h?top
这么做。
我唯一的办法是使用 greping/awkingps
来终止这些类型的进程,还是我遗漏了什么?
答案1
尝试使用ps -f
、pgrep -f
和pkill -f
。
从相应的手册页中:
ps -f
Do full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed.
-
pgrep/pkill -f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.