Назад | Перейти на главную страницу

Как узнать идентификатор фонового процесса?

У меня есть команда (программа), которую я хотел бы запустить с помощью nohup, и в фоновом режиме. подобно

nohup command > logfile.txt &

Как узнать идентификатор процесса? Я хотел бы иметь возможность записать идентификатор процесса в файл, прочитать его позже и программно убить процесс.

В вашем скрипте:

nohup command > logfile.txt &
echo $! > /var/run/command.pid

Ты можешь использовать $!. Упоминается в документация по bash.

Ты можешь использовать ps и grep найти процесс в списке процессов, а затем awk чтобы проанализировать вывод и найти фактический PID:

ps -ef | grep -v grep | grep YOUR_PROCESS_NAME | awk '{ print $2 }'

Вы можете попробовать:

ps aux | grep -v grep | grep название программы

Это проверит запущенные процессы, grep для имени программы, но исключит сам grep.