systemd를 사용하여 TTY 읽기/쓰기

systemd를 사용하여 TTY 읽기/쓰기

대화형 터미널에 쓰고 읽는 응용 프로그램이 있는데 셸을 통해 실행하면 예상대로 작동합니다. 그러나 systemd 서비스로 실행하면 응용 프로그램이 stdout 또는 stderr을 캡처하지 않는 것 같습니다.

서비스 정의에서 StandardOutput 및 StandardError를 journal+console수정해 보았습니다 tty.

내 시스템 파일의 서비스 섹션은 다음과 같습니다.

[Service] 
ExecStart=/bin/bash -c "cd /somedir && python3 myapp.py" 
ExecStop= 
Restart=always 
RestartSec=10
StandardOutput=tty 
StandardError=tty

나는 또한 그것을 설정하려고 시도했지만 TTYPath=/dev/tty2운이 없었습니다.

우분투 16.04를 실행 중입니다.

편집: 추가 정보

이 애플리케이션을 실행하면 생성된 대화형 세션이 실제로 애플리케이션을 실행하는 터미널에서 읽기/쓰기가 되지 않습니다. 자체 터미널을 에뮬레이트합니다.

여기 링크를 참조하세요:

http://docs.paramiko.org/en/2.4/api/channel.html#paramiko.channel.Channel.get_pty

그리고 여기:

http://docs.paramiko.org/en/2.4/api/channel.html#paramiko.channel.Channel.invoke_shell

관련 정보