我创建了一个 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'