[英]Need init.d script for Python application
我有一個基於python的應用程序,它像feed聚合器一樣工作,需要成為init.d腳本的一部分,這樣我就可以用start / stop / restart選項控制執行。 另外,我希望將init.d腳本設置為cron作業(我在這里有例子)。
我在這里找到了一個樣本http://homepage.hispeed.ch/py430/python/daemon
(PS。我不希望腳本用python本身編寫)。
您可以考慮為使用Upstart的操作系統編寫Upstart任務。
例:
# Start zeya
#
description "Start Zeya music server"
start on startup
task
exec python /home/r00t/code-hacking/serve-music/zeya/src/zeya/zeya.py
--path=/home/r00t/Music
將其添加到文件中,例如/ etc / init中的'zeya.conf'
然后你可以使用'initctl'控制作業。 例如:
initctl status zeya
initctl stop zeya
我最近做了類似的事情並使用Supervisord編寫了一些小配置文件。
從init腳本(非常簡單),我簡單地使用適當的參數調用supervisor-ctl。
此外,您應該注意到實際的功能(例如, start-stop-daemon
)從發行版到發行版各不相同。
一個反問題,但我注意到,你提到了cron,意思是,你的應用程序將定期運行,而不是以所謂的守護進程方式連續運行。
對於定期運行的應用程序,如何啟動,停止和重啟等命令有什么意義? 我的意思是,你的應用程序每小時運行一次(或其他東西),為什么需要啟動,停止和重啟?
無論如何,既然你已經提到了ubuntu,我必須說,你鏈接的腳本不符合ubuntu和debian lenny的initscripts的當前標准。 您可以在/etc/init.d/skeleton
看到正確的模板
重申一下,為什么你需要一個cron工作的腳本 ?
編輯
考慮到注釋,即使崩潰或被終止,保持應用程序運行的某種“規范”方式是inittab 。 當然,你也可以用cron工作來完成它。
我知道這是一個老問題,但實際上你找到的例子是在ubuntu和debian中建議的方法(啟動/停止/重啟)。 然后你可以做一個cron工作來查看你的程序是否正在運行。
(PS。我不希望腳本用python本身編寫)。
腳本是用shell命令語言編寫的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.