Например, иногда, когда я пытаюсь запустить Firefox, он говорит, что процесс Firefox уже запущен. Поэтому я должен это сделать:Как я могу убить процесс по имени вместо PID?
[email protected]:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
[email protected]:~$ kill 7451
Что мне нужно - это команда, которая сделает все это для меня. Он будет принимать входной строки и Grep для него (или любой другой) в списке процессов, и убьёт все процессы в выходе:
[email protected]:~$ killbyname firefox
Я попытался сделать это в PHP, но Exec («пс Окс»), кажется, только показывает процессы, которые выполняются с Exec() в самом PHP скрипт (так что единственный способ это показывает само)
Когда я получу окно, в котором говорится, что Firefox уже выполняется, мне обычно нужно подождать одну секунду, и я снова смогу запустить Firefox (конечно, это может быть не всегда так). – nuoritoveri 2014-02-24 14:28:47
Это самый безопасный способ, так как JohnB говорит в этом ответе: http://stackoverflow.com/questions/6381229/how-to-kill-all-processes-matching-a-name/19733066#19733066 – tecnoshopbq 2014-05-08 16:03:56
Возможный дубликат [Найти и убить процесс в одной строке с помощью bash и regex] (http://stackoverflow.com/questions/3510673/find-and-kill-a-process-in-one-line-using-bash-and-regex) – tripleee 2016-07-27 10:01:06