簡體   English   中英

即使它在Linux中崩潰,也會自動重啟python腳本

[英]Restart python script automatically even when it crashes in Linux

我有一個必須一直運行的python程序。 如果由於某種原因它被停止我想自動重啟它。 我想過有一個每隔n秒運行一次的cron並檢查程序是否正在運行。 我的shell腳本如下所示:

#!/usr/bin/env bash
CM_COMMAND=`ps aux| grep abc| grep def| grep sudo`
LEN_COMMAND=${#CM_COMMAND}
if[["$LEN_COMMAND" -le "5"]] 
then
    echo "start the python program"
fi
exit

當我運行此腳本時,我收到錯誤: my_prog.sh: line 4: $'if[[118\\r -le 5]]\\r': command not found'

這樣做的替代方法是什么,我的腳本有什么問題?

也許這會更強大?

1)啟動時保存進程的PID:

{your_python_command} & echo $! >>/{some_folder}/your_app.pid

2)如果找不到PID,該腳本將檢查並重啟。

#!/usr/bin/env bash

PID=`cat /{some_folder}/your_app.pid`

if ! ps -p $PID > /dev/null
then
  rm /{some_folder}/your_app.pid
  {your_python_command} & echo $! >>/{some_folder}/your_app.pid
fi

3)將其添加到cronjob:

crontab -e

選擇文本編輯器並在文件末尾添加此行:

*/1 * * * * /{your_path}/{your_script_name}

退出並保存

(這將每分鍾運行一次腳本,檢查crontab手冊以設置您的確切間隔)

如何使它成為一項服務? 在我看來,這是一個非常干凈的解決方案

有關如何執行此操作的詳細信息,請閱讀本文

暫無
暫無

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

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