假如我有500臺機器,跑著500個程序,假如有一部分台機器掛了,我們怎麼能及時的知道呢?我們維護自己的機器當然要及時的直到啦so 如果我們有乙個監控的軟體來實時的監控是不是就可以解決這個問題啦
其原理是:client端每隔乙個時間段(比如60秒)匯報給server端 沒有在正確的時間收到某台機器的匯報就說明這台機器出問題了,應該去看一看。
那麼如何做呢?在client端的主程序中開啟乙個子程序,通過這個子程序來匯報,看下面:
from multiprocessing importprocess
import
time
defeye():
while
true:
print('
server大哥,我很好,請放心')
time.sleep(1)
defmain():
print('
主程式**')
time.sleep(3)
if__name__ == '
__main__':
p = process(target=eye)
p.daemon = true #
把p設定成守護程序(主程序**結束,守護程序會隨之結束)
p.start()
main()
守護程序只守護主程序的**而已,如果有多個子程序在執行,那麼主程序肯定要等到所有子程序結束收完屍體才能結束,守護程序只守護主程序的**其他的不會管。
那麼,那麼,那麼如果我想一併把其他的子程序也守護了呢?怎麼做?
可以考慮使用join啊,通過將p2.join加到主程序**中,那麼守護程序就要等這一句執行完才結束(這一句屬於主程序的**啊),所以變相的就把這個子程序也守護了。
總結一下:關鍵字daemon,關鍵字daemon,關鍵字daemon
1守護程序會隨著主程序**的結束而結束
2守護程序不會守護除了主程序**外的其他子程序(除非你人為的使用join去讓他去守護子程序)
Python網編 程序池
如果我們有多少個任務就開啟多少個程序,實際上是很浪費資源的。由於我們計算機的cpu個數是有限的,所以我們起的程序數量時完全和cpu個數相關。程序池的概念 魚池是放魚的,水池是放水的,獎金池是放獎金的,顧名思義程序池就是放程序的。我們想象,先建立叫程序池容器,然後製作四個程序放到這個程序池裡,當有任務...
python守護程序
去 python daemon 1.5.2 3.el5.noarch.rpm 測試 test.py usr bin python import daemon,time print 1 p daemon.daemoncontext p.open for i in range 0,100 print t...
Python守護程序
關於python守護程序,網上查了一些資料,做下彙總 1.python例項 之五python守護程序和指令碼單例執行 2.python 模擬linux守護程序 3.python中fork 函式生成子程序分析 4.討論一下os.umask 和os.setsid 5.用python編寫linux守護程序...