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