Bash: tty에 대한 echo 명령

Bash: tty에 대한 echo 명령

다음과 같이 명령을 받고 작업을 수행하는 Python으로 작성된 서비스가 있습니다.

    print("\nWelcome!\n")

    for line in sys.stdin:
        cmd=line.rstrip()
        if cmd == "ls" or cmd == "help":
            print("Available Commands:")

이제 서비스가 시작되었으므로 systemd해당 단위 파일은 다음과 같습니다.

[Service]
Environment=PYTHONUNBUFFERED=1
ExecStart=...service.py
WorkingDirectory=...

StandardOutput=tty
StandardInput=tty-force
TTYVHangup=yes
TTYPath=/dev/tty60
TTYReset=yes

따라서 서비스 입력 및 출력은 에 연결되어 서비스가 수행하는 작업을 확인하고 서비스와 상호 작용할 tty60수 있습니다 . 예 를 conspy 60들어 여기에 다음을 입력합니다 .testhelp

test
Error: command 'test' not found.
Type 'help' for a list of available commands.

help
Avaliable Commands:
> status, fan1, fan2, fan3, fan4, wake, sleep, quit

Python은 내가 입력한 내용을 받아 예상대로 답변을 제공할 수 있었습니다.

이제 tty대화형 프로그램과 같은 것을 입력하지 않고 어떻게 명령을 보낼 수 있습니까 conspy?

피곤해요 echo -e "ls\n" >> /dev/tty60. 다른 터미널에서 conspy명령을 볼 수 있지만 Python이 명령을 처리하지 않습니다.

help **---> sent via conspy**
Avaliable Commands:
> status, fan1, fan2, fan3, fan4, wake, sleep, quit
help **---> sent with "echo"**

보시다시피, help전송된 마지막 패스가 echo처리되지 않았습니다.

감사해요.

관련 정보