У меня есть сценарий, который нужно запустить в фоновом режиме, если я запускаю тот же сценарий на переднем плане, сценарий работает хорошо и не останавливается, пока мы не прервем его вручную (ctrl^c).
Я уверен, что приведенная ниже команда запустит скрипт в фоновом режиме.
sudo -u webs ./spagent_L1 &
После выполнения вышеуказанной команды будет выдан номер задания и номер процесса.
[1] 10118
И сразу после этого, если я нажму Enter два раза, задание будет остановлено.
[1]+ Stopped sudo -u webs ./spagent_L1
Если я проверю задания, выполняемые в фоновом режиме, то выяснится, что задание было остановлено.
$> jobs
[1]+ Stopped sudo -u webs ./spagent_L1
В то время как если я проверю запущенный процесс, он покажет, что вышеупомянутый скрипт запущен.
$> ps -eo user,ppid,pid,cmd,state | grep -i spagent
root 10118 9383 0 05:42 pts/1 00:00:00 sudo -u webs ./spagent_L1 T
ape 10122 3983 0 05:42 pts/1 00:00:00 grep -i spagent R
Пока я не убью процесс 10118, команда jobs показывает, что процесс остановлен. Как только процесс убит, команда jobs ничего не выдает.
Итак, означает ли вышеприведенный вывод, что процесс все еще запущен? Не мог бы кто-нибудь помочь мне понять, что там происходит, и как запустить скрипт в фоновом режиме без его остановки.
Заранее спасибо.
Вы можете запустить скрипт в фоновом режиме, выполнив:(sudo -u webs./spagent_L1 &)
после этого вы сможете закрыть терминал (, если вы находитесь в DE ), не закрывая этот скрипт.