스크립트 실행이 완료된 후 screen 세션 종료

스크립트 실행이 완료된 후 screen 세션 종료

실행하는 데 시간이 걸리는 스크립트가 있는데 화면을 사용하여 실행하고 있습니다.

ssh user@host screen -dm "python dostuff.py"

이제 문제는 dostuff.py가 실행을 완료한 후 스크린 세션을 종료하는지 확인하는 방법입니다. 오류로 인해 또는 올바르게 종료되었습니다.

답변1

이것은 아마도 "해결 방법" 범주에 속하지만 명령(예제에서는 "python dostuff.py")을 쉘 스크립트에 넣은 다음 실행하여 목표로 하는 것을 달성할 수 있었습니다.... screen -d -m "/path/to/that/script"

버전 정보:

$ screen -v
Screen version 3.09.10 (FAU) 4-Sep-01

내 시스템에 꽤 오래된 버전의 화면이 있는 것 같습니다. 최신 버전에서는 화면 동작이 자동 종료로 변경되었을 수 있나요?

$ screen -ls
No Sockets found in /tmp/uscreens/S-username.
$ screen -dm "ls"
$ screen -ls
There is a screen on:
        32112694.ls     (Detached)
1 Socket in /tmp/uscreens/S-username.

(스크린-r; 종료)

$ screen -ls
No Sockets found in /tmp/uscreens/S-username.

$ cat runme
#!/bin/sh
sleep 6
ls > now

$ screen -d -m ./runme
$ ps -ef|grep sleep
 username 9633926  9437204   0 14:55:23  pts/1  0:00 grep sleep
 username 15532242 10223670   0 14:55:21  pts/6  0:00 sleep 6

(6초 정도 기다리세요)

$ screen -ls
No Sockets found in /tmp/uscreens/S-username.
$ ls now
now

이 과정을 진행하면서 깨달은 한 가지는 내 화면 버전에서 -dm; 뒤에 세션 이름이 있어야 한다는 것입니다. 명령 매개변수를 전달하려면 -d와 를 분리해야 합니다 .-m

다음을 사용해 보세요:

ssh user@host screen -d -m python dostuff.py

-S세션 이름을 구체적으로 지정할 수 있습니다 .

관련 정보