我在将程序作为systemd服务运行时,将STDOUT & STDERR管道传输到文件时遇到问题。我试着添加以下的.service
文件:如何将输出作为系统服务运行时输出到文件?
ExecStart=/apppath/appname > /filepath/filename 2>&1
但是,这是行不通的。输出结果在/ var/log/messages中,可以使用journalctl查看,但我想要一个单独的文件。
我也试过设置StdOutput=tty
,但找不到将其重定向到文件的方法。
任何帮助,将不胜感激。
谢谢。这有所帮助,但是我发现的底层问题与SELinux无声地阻止了对我正在尝试使用的日志文件夹的写入操作。 – MichaelB76
有些人可能想用>>替换第一个>追加到日志文件。 – Zyphrax
注意 - 这会产生两个进程,一个用于shell包装,另一个用于appname。要使用'systemctl stop appname'杀死这两个进程,请在ExecStop中使用pkill。 ExecStop =/bin/pkill -TERM -P $ MAILPID – siliconrockstar