簡體   English   中英

如果停止,如何在遠程服務器上重新啟動python腳本?

[英]How do I restart a python script on a remote server if it stops?

我有一個在遠程服務器上運行的python腳本,該服務器開始使用nohup python myscript.py & 如果腳本停止,我想重新啟動它。 我檢查了這個答案,但不確定是否啟動腳本。 我相信它會檢查腳本是否停止並在腳本停止時啟動它。 另外,它需要腳本的pid ,每次重新啟動腳本時, pid都會不同。

我也檢查了這個答案,但是我不確定nohup命令是否可以使用until.. do循環。 難道不是每隔1秒就重新啟動一次腳本嗎? 誰能指定我該如何編寫腳本以在腳本停止的情況下重新啟動該腳本?

無需編寫自己的腳本,您可以使用非常成熟,經過戰斗測試, 監督的守護程序為您守護任何腳本。

除了自動重啟外,它還提供了許多其他功能,包括即開即用的注銷功能,它非常廣泛地用於守護python腳本

如果您想要自己的解決方案,只需使用bash腳本即可:

#!/bin/bash
while :
do
    python myscript.py
    echo "crashed" >> log
end

使它可執行(chmod + x),然后像nohup ./thisscript.sh &一樣運行它。

或者讓其他軟件為您完成此操作(建議使用dm03514)。

如果要從自身內部重新啟動它,則可以嘗試:

import os, sys

os.execv(__file__, sys.argv) #__file__ for current file or one of your choice

暫無
暫無

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

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