ps и top показывают другое имя команды, чем то, что видят pkill и pgrep

ps и top показывают другое имя команды, чем то, что видят pkill и pgrep

Часто мне хочется завершить процесс, который, как я считаю, изменил имя своей команды (Я думаю, что через 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.

Связанный контент