簡體   English   中英

需要用於Python應用程序的init.d腳本

[英]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工作來完成它。

我在這里找到了一個樣本http://homepage.hispeed.ch/py430/python/daemon

我知道這是一個老問題,但實際上你找到的例子是在ubuntu和debian中建議的方法(啟動/停止/重啟)。 然后你可以做一個cron工作來查看你的程序是否正在運行。

(PS。我不希望腳本用python本身編寫)。

腳本是用shell命令語言編寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM