Я планирую управлять некоторыми программами (например, медиаплеером и оболочкой) через webapp, , так как веб-страница умирает каждый раз, когда пользователь посещает ее, я решил, что webapp откроет программу с setsid
, а затем webapp свяжется с ней через трубы.Как получить идентификатор процесса, выполняемого через setid
Примечание: я не могу использовать nohup
, потому что что-то вроде nohup bash -i <fifoin >fifoout 2>&1 &
автоматически останавливается.
С setsid
все работает отлично, но я не могу убить процесс, так как я не знаю идентификатор разветвленного процесса! .. Так как я могу получить идентификатор процесса setsid
?
Я пытался что-то вроде
setsid bash -i <fifoin >fifoout 2>&1
kill $!
kill $$
В результате оба kill
не работают, я не буду искать идентификатор с ps -e
becouse я не могу убить все работает bash -i
оболочки!
На самом деле, это происходит со мной, что 'setsid' не блокирует оболочки. Однако также использование '&' не выполняет задание, infact Если я сначала выполнил 'setsid sleep 50 &', а затем 'kill $!' Возвращает 'bash: kill: (21724) - Нет такого процесса' –