Есть ли способ (возможно, скрипт), как автоматизировать этот процесс:
petr@sova:~$ ps -ef | grep middleman
petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/ruby-1.9.3-p362/bin/middleman
petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman
petr@sova:~$ kill -9 18445
К сожалению, pkill
слишком слабый, так как я должен идти с -9
опцией kill
.
-9
сpkill
...-KILL
чем использовать-9
. Какое число соответствует тому, какой сигнал зависит от реализации.SIGKILL
случается9
на Linux i386 и Linux amd64, но не обязательно везде. ( Более подробная информация здесь. )-KILL
тоже люблю его использовать (поскольку он делает код более читабельным), следует отметить, чтоSIGKILL = 9
он определен POSIX , поэтому в-9
настоящее время он довольно переносим (и не зависит от ядра или архитектуры).Ответы:
Вы можете использовать вашу оболочку, чтобы выполнить эту задачу для вас:
Оболочка выполняет команду в
pidof middleman
первую очередь. Выходные данные pidof (8) - это идентификатор процесса. Таким образом, оболочка заменяетpidof
-команду идентификатором процесса и выполняетkill -9 18845
(или любой другой правильный идентификатор процесса).источник
kill -9 $(pgrep middleman)
?Существует еще более простое решение, чем у qbi:
killall
давайте убивать процессы по имени и указывать сигналы.Смотрите
man killall
для получения дополнительной информации и дополнительных опций (их довольно много).Как следует из названия, это посылает сигнал всем именованным процессам
middleman
. Но это не отличается от других способов (какpkill
). Кроме того,pkill -9 middleman
будут нацелены процессы, имена которых совпадают, но не совпадаютmiddleman
, напримерmiddleman2
, также.источник
killall
для победы!Другие ответы совершенно правильны, но я мог бы также добавить третий вариант, чтобы все они были описаны здесь. Вы также можете использовать:
Смотрите
man pkill
для получения дополнительной информации и дополнительных опций.Неважно, какой из этих методов вы используете. Они все будут работать. Но знание параметров полезно, если вы хотите каким-либо образом изменить поведение, поскольку соответствующие справочные страницы показывают, какие другие параметры соответствия доступны.
источник
middleman*
middleman
. Это то , где различия в том , как именноpkill
,killall
,pidof
иgrep
матч процессы действительно начинают дело!-f
Опция позволяет сопрягать полную командную строку, а не только имя процесса.Обратите внимание, что это
-9
должен быть сигнал последней инстанции, а не то, что обычно используется.источник
complete command line
Просто для удовольствия, я хотел бы добавить более руководство, старый школьный путь
источник
... grep [m]iddleman ...
чтобы не убитьgrep
процесс случайно. Таким образом, grep не может сравниться сам по себе из-за забавных цитат.который является интерактивным (безопасным) и соответствует частичному имени команды.
источник