絮叨
supervise是daemontools的一个工具,可以用来监控管理Unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序。
本文介绍一下supervise的安装和使用。
安装、使用、栗子
安装:
官网有介绍,不再赘述:
https://cr.yp.to/daemontools/install.html
其中这个命令的‘1755’引起我的深思。。。,在这里《Linux下chmod命令》给出详细解释。
chmod /package
使用栗子:
网上能搜到关于supervise的介绍基本都出自同一篇博客,使用栗子都是跑一个C程序,这里就跑个Java吧:
1.创建一个文件夹,并创建java类
➜ ~ mkdir testsv
➜ ~ cd testsv
➜ testsv vim Test.java
2.Test.java,通过Scanner保持main线程,直到在控制台输入信息才结束。
package testsv;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("Hello Java!");
Scanner scanner = new Scanner(System.in);
scanner.next();
}
}
3.编译,试运行
可以看到带包名(带有package的情况)时,直接‘java Test’是不能执行的,这个问题,下次再详细说吧。。
4.在当前文件夹下,新建一个可执行的脚本"run"(chmod命令详情)
➜ testsv vim run
#!/bin/sh
echo "start test!"
java -cp .. testsv.Test
➜ testsv chmod +x run
5.验证supervise的功能
无论是在程序中终止,还是直接kill进程,supervise都会立即将程序重启,始终保持run的状态。