如何将ExecStart的Systemd服务标准输出传递给shell,例如。庆典?

时间:2018-03-10 05:14:59

标签: linux bash service sh systemd

我有一个Systemd服务启动输出过程,我需要将其作为普通的Bash脚本执行

[Unit]
Description=Example app

[Service]
Type=simple
PIDFile=/var/run/app.pid
Sockets=app.socket
StandardInput=fd:app.socket
#StandardOutput=fd:sh
StandardError=journal
ExecStart=/usr/bin/app -a | sh # 

[Install]
WantedBy=default.target

应用程序的输出不是执行,而是落入日志中。

告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你无法真正管道ExecStart中的东西,但你可以这样做:

ExecStart=/bin/bash -c '/usr/bin/app -a | sh '