我正在开发一些需要在Raspbian (Jessie)系统启动时执行的服务脚本,并决定使用systemd。我刚开始阅读一些快速教程,但是我在环境设置方面遇到了问题。运行的进程需要(在它们的代码中)一些环境变量,我将其设置在一个shell脚本中,但它们没有被加载,尽管使用了EnvironmentFile = /path/to/my/file... 我有一个用于执行Python3脚本的服务以及另一个用于Node.js应用程序的服务。我已经寻找替代解决方案一整天了,但似乎没有什么作用...也许我只是没有理解systemd的工作原理?这一定是可行的,因此我向您请教...
以下是我的单元文件:
对于Python脚本:
节点应用程序:
以下是我的单元文件:
对于Python脚本:
[Unit]
Description=My awesome python script
After=multi-user.target
[Service]
ExecStart=/usr/local/bin/python3.6 /home/pi/Desktop/myawesomescript.py
Restart=Always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mypython
User=pi
EnvironmentFile=/home/pi/.bash_vars
[Install]
WantedBy=multi-user.target
节点应用程序:
[Unit]
Description=My awesome Node.js socket.io app
Requires=After=mypython.service # Requires the python script to be running
[Service]
ExecStart=/usr/bin/node /home/pi/Desktop/myawesomenodeapp/src/index.js
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mynodeapp
User=pi
EnvironmentFile=/home/pi/.bash_vars
[Install]
WantedBy=multi-user.target
感谢您抽出时间阅读此文,并对我的英语表达道歉!
附注:如果需要更多信息,请告诉我。