GNU 화면이 "가상"터미널을 연결하지 않고 강제로 연결하려고 시도하고 내부 스크립트를 실행하고 스크립트가 종료되면 세션을 종료하지 마십시오.
나는 다음을 포함하여 많은 조합을 시도했다.
screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh
또는
screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh
그들 중 누구도 일하지 않았습니다. 스크립트를 실행하지 않고 세션을 가져오고 스크립트를 실행하지만 세션이 완료되면 세션이 종료되거나 "No screen session found"오류가 발생합니다.
내가 기본적으로하려고하는 것은 PHP로 작성된 UDP 리스너를 실행하고 무한 루프에서 작동하게하는 것입니다 (듣기 중단하지 마십시오). 예- &
마지막에 PHP 스크립트 를 실행하여 PHP CLI를 데몬으로 실행할 수 있습니다. 문제는 서버라는 정크 (QNAP-절대로이 쓰레기를 사지 마십시오!)를 사용하고 있다는 것입니다. 이것을 무시하는 것 같습니다. SSH 세션을 로그 오프하면 스크립트가 중지됩니다.
따라서 screen
유일한 옵션 인 것 같습니다. 그러나 명령을 실행하거나 스크립트가 끝나면 세션이 종료되는 이유를 이해할 수 없습니다.
편집 : 인터넷에서 찾은 예제도 시도했습니다.
screen -dmS name
screen -S name -p windowname -X stuff 'mc
'
부족하지 않습니다! 첨부 한 후 ( screen -R name
) Midnight Commander HASN이 실행되지 않은 것으로 보입니다. 모범 저자가 말했지만 그렇게 될 것입니다.
screen
있습니까 (명령 줄만 사용하고 키보드 조합은 사용하지 않음), 하나는 스크립트를 실행하고 다른 하나 는 닫히지 않도록 방지 합니까? BTW : 여전히 아이디어를 얻지 못했습니다! 을 호출 screen -dmS name
하면 분리 된 창을 만들며 할 일이 없습니다. 그러나 자동으로 닫히지 않습니다! 그러나 분리 된 화면에서 무언가를 실행하려면 실행이 완료되면 종료됩니다. 왜? 나는 여기에 논리가 보이지 않습니다. 창에 아무것도하지 않을 수 있지만 창에 무언가를 한 다음 아무 것도하지 않을 수 있습니까?
&
QNAP (buggy server)로 인해 둘 다 데몬으로 실행되지만 세션 종료시 종료됩니다 (나는으로 실행하면 일반 Linux에서는 사용해서는 안된다고 들었습니다 &
). 따라서 start_udp_listeners.sh
완료 후 아무것도하지 않고 세션이 종료되지 않도록하는 방법 만 찾고 있습니다. 그렇지 않은 한 내 PHP 리스너는 정상적으로 작동합니다.
screen
하나의 창만 만들어 단일 명령을 실행할 수 있습니다. 명령이 종료되면 창이 닫히고screen
수행 할 작업이 없으므로 종료됩니다.