目前是写一个额外的脚本去监控这个进程,没了就重启,体验一般.
请问有没有系统级的方案,或者现成业界主流方案,请大大们赐教
linux 也有类似 windows 服务吧,可以直接拉起来自己
systemd
我用的这个 https://github.com/Supervisor/supervisor
docker 自带的--restart 参数
如果可以热备,像数据库主从切换,应该都是定时执行一个 sql(show status),然后进行切换的。
关键词 keepalived
写个 systemd service,添加:
Restart=on-failure
systemd 大法
如果是用定时探测的思路,方法很多,比如 crontab ; 如果是需要快速并且实时,需要使用父子进程通信的信号,如果子进程异常退出,会给父进程发 signal, 具体可以参考各种 daemon(supervisor/systemd), 或者使用.pid 文件,如 nginx
我都用过的:
systemd ( Restart=on-failure )
supervisor ()
docker (--restart )
推荐 systemd, 如果服务器重启,docker 或者 supervisor 不是开机启动,程序就不会启动。supervisor 我记得有 web 页面监控
systemd 最佳。
systemd,supervisor,pm2,docker...太多了
都是很成熟的方案了。
如果你不是远古时代的 Linux 那就用 systemd 吧,绝大多数发行版的基础设施,不用额外安装