답변:
이것은 쉬운 것입니다 :
screen -d -m yourcommand
screen yourcommand
없이 수행하고 먼저 어떻게 진행되는지 확인하십시오. -d
-m
zombie
화면 에서 옵션 을 활성화하여이를 변경할 수 있습니다 . 에 넣으 zombie xy
십시오 ~/.screenrc
. 한 세션에서만 zombie xy
다른 파일을 넣고 사용 -c file
하지만 사용할 수는 있지만 어떤 이유로 시도해도 작동하지 않을 수도 있습니다. 아니면 그냥 사용하십시오sh -c 'yourcommand;while :;do sleep 9999; done'
화면에서 단일 명령을 실행하고 분리하려면 다음을 시도하십시오.
screen -dm sleep 10
여러 명령을 실행하려면 다음을 시도하십시오.
screen -dm bash -c "sleep 10; myscript.sh"
프로그램이 종료되면 screen (기본적으로)은 프로그램이 포함 된 창을 종료합니다.
스크립트가 끝난 후 세션이 종료되지 않게하려면 다음 exec sh
과 같이 끝에 추가하십시오 .
screen -dm bash -c 'sleep 5; exec sh'
모든 세션을 나열하려면 다음을 시도하십시오.
screen -list
관련 : 시작 유닉스 화면, 실행 명령, 분리 .
-S sessionname
하십시오 screen -dmS MyLongRunningScript bash -c "..."
.
'졸린'이라는 이름으로 백그라운드에서 새 세션을 시작하려면
screen -S sleepy -dm sleep 60
'졸린'세션을 죽이려면
screen -S sleepy -X quit
screen -S sleepy -dm "cd myfolder;sleep 60"
않습니까?
컨트롤 c (sig int)를 눌러 프로그램을 종료하면 나에게 발생합니다. 모든 배쉬에서 완전히 빠져 나옵니다. 그래서 이것이 SIGINT를 잡는 것으로 나타났습니다. 마지막 bash에서 나가는 것을 방지하십시오. (종료하려면 종료를 입력해야 함)
screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"
example:
screen -dmS "status_updates" bash -c "trap 'echo gotsigint' INT; cd /opt/status_update ; forever index.js ; bash"
cron을 사용하여 시작시 nodejs 프로그램을 실행하는 것이 유용하다는 것을 알았습니다. 부팅시 화면을 실행합니다. cron에는 특수 이벤트 구문 @reboot event가 있습니다.
to edit cron, execute:
crontab -e
then type
@reboot screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"