我在 Raspbian (Jessie) 上使用 systemd 搭建了一个服务,使其可以在开机后自动启动。守护进程的配置如下:
[Unit]
After=multi-user.target
[Service]
Type=idle
User=root
ExecStart=/bin/sh -c "exec /home/pi/sources/mydaemon.py >> /home/pi/mydaemon.log 2>&1"
[Install]
WantedBy=multi-user.target
那个重定向符号>>
没有起作用。我已经尝试了大多数可用的StandardOutput
和StandardError
选项,但它们从未将脚本的输出打印到/var/log/daemon.log,而journalctl -u mydaemon.service
仅显示关于启动和停止服务的消息。目前我在脚本中不使用文件描述符。我只希望我的
print()
或logging.info()
语句出现在我可以阅读的某个地方。有任何想法吗?(为清楚起见,该守护进程必须以root身份运行。这是否可能与我的打印问题有关?)
systemd
服务文件中使用StandardOutput=
吗?或者你在脚本中使用Python的systemd.journal
模块了吗? - harperville