接着上一篇文章 將 Python 任務設爲守護進程(一),當python任務中包含相對路徑引用時,在service文件中執行python文件會報錯,爲了解決這個問題,還需藉助shell腳本的力量。假設項目存在/root/python
路徑中,且必須運行該目錄下的main.py
文件才能運行該項目,那麼可以進行以下操作:
1. 創建shell腳本
在項目目錄中創建shell腳本
vim /root/python/start.sh
在start.sh
中寫入
#!/bin/sh
cd /root/python
python3 /root/python/main.py
2. 修改shell腳本權限
不修改權限時,root用戶可以直接運行shell腳本,但是systemctl
無法運行,所以需要執行下面這條命令:
chmod 777 /root/python/start.sh
3. 配置service文件
創建service文件
Centos:vim /usr/lib/systemd/system/python_taskd.service
Ubuntu:vim /lib/systemd/system/python_taskd.service
在service文件中寫入
[Unit]
Description=start python task
After=network.target
[Service]
Type=simple
ExecStart=/root/python/start.sh
ExecReload=/root/python/start.sh
ExecStop=
[Install]
WantedBy=multi-user.target
4. 啓動守護進程
systemctl daemon-reload
systemctl start python_taskd.service
systemctl restart python_taskd.service
systemctl status -l python_taskd.service