Monit重启程序脚本

Zer*_*ero 7 linux bash shell monit

我对monit相当新,我想知道这个脚本是否足以重新启动崩溃的程序让我们说program1是程序的名称.

check process program1
matching "program1"
start program = "/home/user/files/start.sh"
stop program = "/home/user/files/stop.sh"
Run Code Online (Sandbox Code Playgroud)

它现在会重启一个崩溃的程序吗?我怎样才能保证它在工作时不重启程序?

编辑:更多信息该程序使用端口30000 udp.这会让它更加谨慎吗?"周期"之间有多少秒?

if failed port 30000 type UDP for 3 cycles then restart
Run Code Online (Sandbox Code Playgroud)

Зел*_*ный 10

Monit使用系统调用execv来执行程序或脚本.这意味着您无法直接在start,stop或exec语句中编写shell命令.要做到这一点,你必须如上所述; 启动一个shell并在那里发出命令.

Read about execution

这只是您应该执行程序或脚本的示例:

check process program1
matching "program1"
start program = "/bin/bash -c '/home/user/files/start.sh'"
stop program = "/bin/bash -c  '/home/user/files/stop.sh'"
Run Code Online (Sandbox Code Playgroud)

基于 ConfigurationExamples