У меня есть команда (программа), которую я хотел бы запустить с помощью 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.