백그라운드에서 실행해야 하는 스크립트가 있습니다. 동일한 스크립트를 포그라운드에서 실행하면 스크립트가 제대로 실행되고 수동으로 중단(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 명령은 아무것도 반환하지 않습니다.
그렇다면 위의 출력은 프로세스가 아직 실행 중임을 의미합니까? 누구든지 그곳에서 무슨 일이 일어나고 있는지 이해하도록 도와줄 수 있습니까? 그리고 스크립트를 중지하지 않고 백그라운드에서 실행하는 방법도 있습니다.
미리 감사드립니다.
답변1
다음을 수행하여 백그라운드에서 스크립트를 실행할 수 있습니다. (sudo -u webs ./spagent_L1 &)
그러면 스크립트를 닫지 않고도 터미널을 닫을 수 있습니다(DE에 있는 경우).