여러 백그라운드 프로세스를 시작하고 명령줄에서 호출하면 제대로 작동하는 스크립트가 있습니다.
그러나 xsession 시작 및 일부 udev 이벤트에서도 동일한 스크립트가 호출됩니다. 두 경우 모두 백그라운드 프로세스가 사라집니다.
스크립트에 sleep 10을 넣었더니 bg 프로세스가 시작되는 것을 볼 수 있지만 일단 스크립트가 존재하면 bg 프로세스를 차지하게 됩니다. bg 프로세스를 호출하여 해결해 보았 start_stop_deamon --background
으나 별 차이가 없었습니다. 그러나 콘솔에서 스크립트를 호출하고 세션을 종료할 수 있으며 bg 프로세스는 계속 실행 중입니다.
당장의 문제를 해결하는 것 외에도(어떤 도움이라도 감사하겠습니다), 그 뒤에 숨어 있는 논리를 이해하고 싶습니다. 나는 그것이 터미널의 부족과 관련이 있다고 생각합니다.
답변1
다음을 사용하여 프로세스를 보호하십시오 nohup
.
nohup command-name &
stdout 및 stderr을 무시하고 nohup.out으로 리디렉션하려는 경우에도 이 기술을 사용할 수 있습니다.
command-name & disown