繁体   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