簡體   English   中英

如何讓我的 python-daemon 進程保持運行或在失敗時重新啟動它?

[英]How can I keep my python-daemon process running or restart it on fail?

我有一個 python3.9 腳本,我想全天候運行 24/7。 在其中,我使用python-daemon來保持它的運行,如下所示:

import daemon

with daemon.DaemonContext():
   %%script%%

它工作正常,但幾個小時或幾天后,它只是隨機崩潰。 我總是用sudo啟動它,但我似乎無法弄清楚在哪里可以找到用於調試的守護進程的日志文件。 我可以做些什么來確保日志記錄? 如何在崩潰后保持腳本運行或自動重啟?

您可以在 此處找到完整代碼。

如果您真的想在后台全天候 24/7 運行腳本,那么最干凈、最簡單的方法肯定是創建一個 systemd 服務。

已經有很多關於如何做到這一點的描述,例如這里

systemd的優點之一,除了能夠在啟動時啟動服務外,還可以在失敗后重新啟動它。

Restart=on-failure

如果您只想在崩潰后自動重啟程序,最簡單的方法可能是使用 bash 腳本。

您可以使用until loop ,它用於執行一組給定的命令,只要給定條件的計算結果為 false。

#!/bin/bash

until python /path/to/script.py; do
    echo "The program crashed at `date +%H:%M:%S`. Restarting the script..."
done

如果命令返回非零退出狀態,則腳本將重新啟動。

我將從熟悉這兩個問題開始:

看起來你需要一個主管來確保你的腳本/守護進程仍在運行。 你可以看看supervisord

暫無
暫無

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

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