我正在開發一些服務腳本,需要在Raspbian(Jessie)上啓動時執行,並且我決定使用systemd。我剛開始閱讀一些關於如何使用它的快速教程,但是我遇到了環境方面的問題。如何爲systemd服務的進程加載環境變量?
所執行的過程需要(在他們的代碼),我在一個shell腳本設置一些環境變量,但他們不加載,儘管使用的EnvironmentFile = /路徑/要/我的/文件...我有一個服務執行一個Python3腳本和另一個Node.js應用程序。
自昨天以來,我一直在尋找替代解決方案,但似乎沒有任何工作......也許我只是不明白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
節點應用:
[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
感謝您抽出寶貴的時間和歉意爲我的英語不好!
PS:請讓我知道如果你需要更多的信息
萬一檢查出[不死](https://immortal.run/post/run.yml/) – nbari
事實上,DarkKnight的回答讓我明白我錯過了。 無論如何謝謝你的建議,我會看看,看看它的功能可能是有用的! – ozonePowered