1、使用supervisor监控进程,通常做法是创建一个sh脚本,然后在脚本中启动真正服务进程,但是千万不能用nohup进行启动服务进程,否则supervisor无法监听。
2、启动服务进程必须使用exec 进程参数,例如: exec java -Dprofiles=prod -jar my-monitor.jar
根本原因:
1)supervisor进程会调用我们写的sh脚本,那么sh脚本相当于supervisor的子进程,supervisor是通监听子进程退出信号(sigchld),帮助我们重启进程
2)如果在脚本中使用nohup,那么我们真正服务进程和supervisor没有父子关系,所以supervisor是监管不了我们的服务进程
3)我们使用exec命令(linux exec家族函数是一样),相当于进程空间置换,而进程id不变,所以supervisor是可以监管我们的进程
使用supervisor监控进程关键点
最新推荐文章于 2025-02-17 18:24:03 发布