使用 systemd 读取/写入 TTY

使用 systemd 读取/写入 TTY

我有一个可以写入和读取交互式终端的应用程序,当我通过 shell 运行它时,它会按预期工作。但是,当我将其作为 systemd 服务运行时,应用程序似乎没有捕获标准输出或标准错误。

我尝试将服务定义中的 StandardOutput 和 StandardError 修改为journal+consoletty

我的 systemd 文件的服务部分如下所示:

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

我也尝试过设置TTYPath=/dev/tty2,但没有运气。

我运行的是 Ubuntu 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

相关内容