화면 세션을 시작할 수 없습니다.

화면 세션을 시작할 수 없습니다.

Bash를 통해 다음 명령을 호출하고 있지만 스크린 세션이 전혀 생성되지 않습니다.

screen -d -m time python3 myscript.py ; sleep 1

그렇게 하면 screen -r다시 시작할 화면이 없다고 뜹니다. 그러나 내가 시도할 때:

screen -d -m time python3; sleep 1

그러면 screen -rPy 콘솔이 표시됩니다.

내가 무슨 잘못을 한 걸까요?

답변1

screen -d -m time python3 myscript.pypython3 myscript.py스크린 세션 내에서 실행된 다음 종료됩니다. 나중에 해당 화면 세션이 표시되지 않으면 스크립트가 이미 종료되었기 때문입니다.

myscript.py더 오래 달릴 것으로 예상했던 것 같습니다 . 뭔가 잘못됐나 봐요. 무슨 일이 일어나고 있는지 확인하려면 출력(특히 오류)을 파일로 리디렉션하세요. 또는 다른 프로그램을 실행하여 세션을 유지하세요.

screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'

스크립트가 화면에서 직접 실행하면 작동하지 않지만 대화형 셸에서 실행하면 작동한다면 이는 다음 두 가지를 의미할 가능성이 높습니다.

  • myscript.py일부 설정(아마도 환경 변수)에 의존합니다. 그것은 독립적이지 않습니다.
  • 이 설정을 잘못된 위치에 설정하고 있습니다. 아마도 대화형 셸에서만 읽을 수 있는 환경 변수를 설정하고 있을 것입니다 .bashrc. 대신 환경 변수를 설정하세요 .profile. 이 파일은 로그인할 때 읽혀집니다.

관련 정보