簡體   English   中英

Centos 7:如果應用程序停止自動重啟

[英]Centos 7: Auto restart application if it stopped

如果我的應用程序“Fiware IoT Agent”停止,我想自動重啟它,問題是它取決於 Mongo Db 數據庫和 Mosquitto 代理。 我的操作系統是centOS 7

這是我用來按以下順序啟動我的三個應用程序的命令:

*蒙戈:

/usr/local/iot/mongodb-linux-x86_64-3.0.5/bin/mongod --dbpath /usr/local/iot/mongodb-linux-x86_64-3.0.5/data/db$

*蚊子經紀人

/usr/sbin/mosquitto -c /etc/iot/mosquitto.conf &
pid=$!
echo $pid > /var/run/iot/mosquitto.pid

物聯網代理:

比我使用這個命令啟動我的應用程序

export LD_LIBRARY_PATH=/usr/local/iot/lib
/usr/local/iot/bin/iotagent -i 192.168.1.11 -p 80 -v DEBUG -d /usr/local/iot/lib -c /etc/iot/config.json

如果我的應用程序停止知道它依賴於其他兩個應用程序,我該如何啟動它? 例如,如果 Mongo DB 停止,我必須能夠重新啟動它,然后重新啟動我的應用程序。

CentOS 7 使用 systemd。 您可以為每個應用程序創建 systemd 服務並指定它們之間的依賴關系。 並為需要自動重啟的服務指定“ Restart=always ”。

您可以創建自己的看門狗代碼。 當您啟動應用程序獲得pid的進程和pid蒙戈DB的。

每隔幾秒(比如 10 秒)檢查兩個進程的pid是否仍然存在,或者您也可以讓程序每隔幾秒觸摸一個文件,然后檢查文件修改時間以查看程序是否仍然存在。

如果程序沒有觸及文件,或者如果你只是使用pid路由而 pid 不存在。 然后程序就死了。

重新啟動程序並獲取新的pid並在永遠的while循環中再次運行。

暫無
暫無

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

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