2011-01-20 3 views
0

Может ли кто-нибудь помочь мне со сценарием, который находит идентификатор процесса по имени и затем перезапускает его?Перезапустить скрипт процесса linux

+5

Это не возможно вообще. Найти и убить процесс легко. Запуск его снова может не быть (например, возможно, ему нужна специальная среда, которая должна быть запущена из определенного рабочего каталога и т. Д.) – derobert

+1

Вам нужно точно указать, что именно вы хотите, как сказал derobert, это isn возможно, или, по крайней мере, непросто, правильно перезапустить любой данный процесс. Хотя, возможно, вам нужно только сделать это для конкретных ситуаций, для конкретных программ? Возможно, вам просто нужно использовать «telinit restart» или любую другую аналогичную конструкцию, используемую вашим дистрибутивом для служб. В любом случае вам нужно предоставить больше информации о том, что именно вы хотите. – wich

+1

См. [Управление процессами] (http://mywiki.wooledge.org/ProcessManagement). –

ответ

1
pidof PROG_NAME | xargs kill -9 ; PROG_NAME 

убивает каждый экземпляр имя_программы и перезапускает экземпляр (если имя_программа находится в вашем PATH)

+0

Он не работает, если PROG_NAME не работает. Как запустить программу, если она не работает? – Dro1n2

+4

... полностью игнорирует, какой идентификатор пользователя запускается под ним, в каком рабочем каталоге, с какими аргументами и т. Д. – derobert

+2

См. [Woah! Остановись прямо там! Не используйте kill -9] (http: //mywiki.wooledge.org/ProcessManagement#I.27m_trying_to_kill_-9_my_job_but_blah_blah_blah ...). (плюс остальная часть этой страницы) –

Смежные вопросы