小编zov*_*akk的帖子

如何为systemd服务的进程加载环境变量?

我正在开发一些需要在 Raspbian (Jessie) 上启动时执行的服务脚本,我决定使用 systemd。我刚开始阅读一些关于如何使用它的快速教程,但我的环境有问题。

执行的进程需要(在他们的代码中)一些我在 shell 脚本中设置的环境变量,但它们没有被加载,尽管使用了 EnvironmentFile=/path/to/my/file...我有一个服务为 Node.js 应用程序执行一个 Python3 脚本和另一个脚本。

从昨天开始我一直在寻找替代解决方案,但似乎没有任何效果......也许我只是不明白 systemd 是如何工作的?一定有可能这样做,所以我问你......

这是我的单元文件:

对于 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
Run Code Online (Sandbox Code Playgroud)

节点应用程序:

[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
Run Code Online (Sandbox Code Playgroud)

感谢您抽出宝贵时间并为我的英语不好而感到抱歉!

PS:如果您需要更多信息,请告诉我

bash shell environment-variables systemd raspbian

5
推荐指数
1
解决办法
5692
查看次数

标签 统计

bash ×1

environment-variables ×1

raspbian ×1

shell ×1

systemd ×1