Bash를 통해 다음 명령을 호출했지만 화면 세션이 전혀 생성되지 않았습니다.
screen -d -m time python3 myscript.py ; sleep 1
이렇게 하면 screen -r
복원할 화면이 없다고 나옵니다. 하지만 내가 시도할 때:
screen -d -m time python3; sleep 1
그러면 이 작업을 수행할 때 Py 콘솔이 표시됩니다 screen -r
.
내가 뭘 잘못했나요?
답변1
screen -d -m time python3 myscript.py
python3 myscript.py
스크린 세션 내에서 실행한 다음 종료합니다. 나중에 screen 세션이 표시되지 않으면 스크립트가 종료되었기 때문입니다.
myscript.py
더 오래 달릴 것으로 예상했던 것 같습니다 . 뭔가 문제가 있는 것 같습니다. 무슨 일이 일어나고 있는지 확인하려면 출력(특히 오류)을 파일로 리디렉션하세요. 또는 다른 프로그램을 실행하여 세션을 활성 상태로 유지하세요.
screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'
스크립트가 화면에서 직접 실행할 때는 작동하지 않지만 대화형 셸에서 실행할 때는 작동하는 경우 이는 다음 두 가지를 의미할 가능성이 높습니다.
myscript.py
일부 설정, 아마도 환경 변수에 따라 다릅니다. 그것은 독립적이지 않습니다.- 이 설정을 잘못된 위치에 설정했습니다.
.bashrc
대화형 셸에서만 읽을 수 있는 환경 변수를 설정했을 수 있습니다 . 대신 환경 변수를 설정하십시오.profile
. 로그인할 때 이 파일을 읽습니다.