Linux中的守护进程——supervise

絮叨

  supervise是daemontools的一个工具,可以用来监控管理Unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序。
  本文介绍一下supervise的安装和使用。

安装、使用、栗子

安装:

  官网有介绍,不再赘述:

    https://cr.yp.to/daemontools/install.html

  其中这个命令的‘1755’引起我的深思。。。,在这里《Linux下chmod命令》给出详细解释。

chmod 1755 /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的状态。

原文地址:https://www.cnblogs.com/zhengbin/p/5977453.html