我在管道STDOUT&将程序作为systemd服务运行时STDERR到文件。我已尝试将以下内容添加到.service
文件中:
ExecStart=/apppath/appname > /filepath/filename 2>&1
但这不起作用。输出结果在/ var / log / messages中,可以使用journalctl查看,但我想要一个单独的文件。
我也尝试过设置StdOutput=tty
但无法找到将其重定向到文件的方法。
任何帮助都将不胜感激。
答案 0 :(得分:44)
ExecStart =
启动此服务时执行的命令及其参数。
因此,systemd
使用args /apppath/appname
,>
,/filepath/filename
2>&1
尝试:
ExecStart=/bin/sh -c '/apppath/appname > /filepath/filename 2>&1'
答案 1 :(得分:4)
尝试:
ExecStart=/usr/bin/sh -c "/apppath/appname > /filepath/filename 2>&1"
ExecStart要求第一个参数是二进制(没有例外),并且不允许管道或重定向。因此,使用ExecStart启动一个shell,您可以在其中执行所有需要的精彩操作。