python linux服务_Python脚本作为Linux服务/守护程序
哈o
我試圖讓python腳本在(ubuntu)linux上作為服務(守護程序)運行。
在網絡上,存在幾種解決方案,例如:
行為規范的Unix守護進程很難正確執行,但是每個守護程序所需的步驟幾乎相同。DaemonContext實例保存程序的行為和配置的進程環境。使用實例作為上下文管理器進入守護程序狀態。
但是,由于我想將我的python腳本專門與ubuntu linux集成,我的解決方案是與init.d腳本結合使用
#!/bin/bash
WORK_DIR="/var/lib/foo"
DAEMON="/usr/bin/python"
ARGS="/opt/foo/linux_service.py"
PIDFILE="/var/run/foo.pid"
USER="foo"
case "$1" in
start)
echo "Starting server"
mkdir -p "$WORK_DIR"
/sbin/start-stop-daemon --start --pidfile $PIDFILE \
--user $USER --group $USER \
-b --make-pidfile \
--chuid $USER \
--exec $DAEMON $ARGS
;;
stop)
echo "Stopping server"
/sbin/start-stop-daemon --stop --pidfile $PIDFILE --verbose
;;
*)
echo "Usage: /etc/init.d/$USER {start|stop}"
exit 1
;;
esac
exit 0
并在python中:
import signal
import time
import multiprocessing
stop_event = multiprocessing.Event()
def stop(signum, frame):
stop_event.set()
signal.signal(signal.SIGTERM, stop)
if __name__ == '__main__':
while not stop_event.is_set():
time.sleep(3)
我現在的問題是這種方法是否正確。我是否需要處理其他信號?它將是“行為良好的Unix守護進程”嗎?
總結
以上是生活随笔為你收集整理的python linux服务_Python脚本作为Linux服务/守护程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机的轮胎气压监测系统_SHT11
- 下一篇: c语言迭代法求平方根_求平方根问题 (C