【发布时间】:2017-03-05 12:04:52
【问题描述】:
我有一个接受--log-file 参数的程序。我想把这个程序包装成一个 systemd 服务,并将日志写入日志。
程序可以在守护模式下运行,并且支持重启和停止动作。
我找到了一个systemd-cat,但它只接受一个管道。
【问题讨论】:
我有一个接受--log-file 参数的程序。我想把这个程序包装成一个 systemd 服务,并将日志写入日志。
程序可以在守护模式下运行,并且支持重启和停止动作。
我找到了一个systemd-cat,但它只接受一个管道。
【问题讨论】:
尝试使用process substitution 的bash 功能。
myapp --log-file >(systemd-cat)
【讨论】:
将以下命令放入服务单元文件的ExecStart
myapp --log-file /dev/stdout
【讨论】:
ERROR [Errno 6] No such device or address: '/dev/stdout'
以 Mark Stosberg 的建议为基础。对我有用的是使用 bash 的进程替换。
ExecStart=/bin/bash -c '/location/app --log >(systemd-cat)'
【讨论】: