프로그램이 ps 또는 tty에서 나오는지 모르는 경우 "screen" 명령을 어떻게 사용합니까?

프로그램이 ps 또는 tty에서 나오는지 모르는 경우 "screen" 명령을 어떻게 사용합니까?

부팅 시 시작되는 Python 프로그램을 만들고 있습니다. 이런 식으로 "화면" 명령을 통해 프로그램과 상호 작용할 수 있기를 바랍니다. 그런 다음 다른 tty, ssh 또는 기타 수단을 통해 프로그램과 통신해야 하는 경우 그렇게 할 수 있습니다.

나는 그것을 유지하여 bash 스크립트를 사용하여 화면이 어디에 있는지 찾을 필요 없이 내 터미널에 화면을 연결할 수 있기를 좋아합니다. 왜냐하면 화면에 액세스하려면 (터미널을 사용하지 않고) 다른 사람이 필요하기 때문입니다.

답변1

올바른 스크린 세션에 연결하는 가장 안정적인 방법은 Python 스크립트가 지정된 파일에 작성하여 screen실행 중인 세션을 보고하도록 하는 것입니다. 프로세스 ID 대신 TTY를 보고한다는 점을 제외하면 PID 파일과 같다고 생각하세요. 그렇지 않고 screen여러 세션이 있으면 추측이 필요합니다.

따라서 Python 프로세스를 시작할 때 다음을 실행하십시오.

echo "$STY" > /var/run/python-proc.screen

...또는 Python 프로그램 자체 내에서

with open('/var/run/python-proc.screen', 'w') as f:
    print(os.environ['STY'], file=f)

그런 다음 사용자는 다음을 실행하여 연결할 수 있습니다.

screen -x -m `cat /var/run/python-proc.screen`

관련 정보