将进程输出保存到 systemd 单元文件中的文件中

将进程输出保存到 systemd 单元文件中的文件中

我创建了一个 systemd 文件单元(Centos 7),我想将 Python 输出保存到文件中,但该服务不会使用以下代码启动。

[root@static ~]# cat /etc/systemd/system/pykms.service
[Unit]
Description=PY-KMS
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/python2.7 /usr/local/py-kms-master/server.py 192.168.1.100 1688 -v > /usr/local/py-kms-master/pykmsss.log



[Install]
WantedBy=multi-user.target

笔记:如果我删除上面“>”之后的行,那么一切正常,但我想将日志保存到文件中。

systemctl 状态 pykms -l

 [root@static ~]# systemctl status pykms -l
pykms.service - PY-KMS
   Loaded: loaded (/etc/systemd/system/pykms.service; enabled)
   Active: active (running) since Tue 2015-11-24 20:54:28 IRST; 2s ago
 Main PID: 2788 (server.py)
   CGroup: /system.slice/pykms.service
           └─2788 /usr/bin/python2.7 /usr/local/py-kms-master/server.py 192.168.1.100 1688 -v

Nov 24 20:54:28 server.de systemd[1]: Starting PY-KMS...
Nov 24 20:54:28 -server.de systemd[1]: Started PY-KMS.

答案1

的手册页系统单元状态:

具体来说,不支持使用“<”、“<<”、“">”和“>>”的重定向、使用“|”的管道、使用“&”在后台运行程序以及 shell 语法的其他元素。

然后它继续解释如何使用它们:

ExecStart=/bin/sh -c 'dmesg | tac'

根据您的情况,您可以这样做:

ExecStart=/bin/sh -c 'exec /usr/bin/python2.7 /usr/local/py-kms-master/server.py 192.168.1.100 1688 -v > /usr/local/py-kms-master/pykmsss.log'

相关内容