
Часто мне хочется завершить процесс, который, как я считаю, изменил имя своей команды (Я думаю, что через setproctitle()
или что-то подобное).
Очевидно pkill
, pgrep
, и друзья не считывают новые имена команд (т. е. процесс ruby переименовывает свою команду, pkill по-прежнему видит ее как ruby
, а не delayed_job
).
Однако так ps
и h?top
делают.
ps
Неужели для завершения таких процессов я могу использовать только grep/awking или я что-то упускаю?
решение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.