天天看点

如何获取supervisor的进程启动命令

以zookeeper为例,总结一下supervisor如何才能获取到监控进程的启动命令。

1. 先通过正常途径启动zookeeper

//守护启动的方式,supervisor是无法进行监控的。
[[email protected] bin]# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
           

2. 获取supervisor的启动命令

[[email protected] bin]# ps -ef | grep zookeeper
root     16053     1  0 10:24 pts/3    00:00:01 /usr/local/jdk8u212-b03/bin/java -Dzookeeper.log.dir=/usr/local/zookeeper-3.4.10/bin/../logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper-3.4.10/bin/../build/classes:/usr/local/zookeeper-3.4.10/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/usr/local/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
root     16082  7954  0 10:32 pts/3    00:00:00  grep --color=auto zookeeper
           

获取到supervisor能监控的启动命令:/usr/local/jdk8u212-b03/bin/java -Dzookeeper.log.dir=/usr/local/zookeeper-3.4.10/bin/…/logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper-3.4.10/bin/…/build/classes:/usr/local/zookeeper-3.4.10/bin/…/build/lib/.jar:/usr/local/zookeeper-3.4.10/bin/…/lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/…/lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/…/lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.10/bin/…/lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.10/bin/…/lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.10/bin/…/zookeeper-3.4.10.jar:/usr/local/zookeeper-3.4.10/bin/…/src/java/lib/.jar:/usr/local/zookeeper-3.4.10/bin/…/conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/zookeeper-3.4.10/bin/…/conf/zoo.cfg

3. 调试启动命令

有时候需要指定java的-classpath路径,先手动运行下看看能否正常运行。

[[email protected] bin]# /usr/local/jdk8u212-b03/bin/java -Dzookeeper.log.dir=/usr/loc 
al/zookeeper-3.4.10/bin/../logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/lo 
cal/zookeeper-3.4.10/bin/../build/classes:/usr/local/zookeeper-3.4.10/bin/../bui 
ld/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr 
/local/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4. 
10/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.10/bin/../lib/log4 
j-1.2.16.jar:/usr/local/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/usr/local/ zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/usr/local/zookeeper-3.4.10/bin/../ src/java/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../conf: -Dcom.sun.management .jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper. server.quorum.QuorumPeerMain /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
2019-11-01 10:40:00,617 [myid:] - INFO  [main:[email protected]] - Reading configuration from: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
2019-11-01 10:40:00,622 [myid:] - INFO  [main:[email protected]] - autopurge.snapRetainCount set to 3
2019-11-01 10:40:00,623 [myid:] - INFO  [main:[email protected]] - autopurge.purgeInterval set to 0
2019-11-01 10:40:00,623 [myid:] - INFO  [main:[email protected]] - Purge task is not scheduled.
2019-11-01 10:40:00,624 [myid:] - WARN  [main:[email protected]] - Either no config or no quorum defined in config, running  in standalone mode
2019-11-01 10:40:00,638 [myid:] - INFO  [main:[email protected]] - Reading configuration from: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
2019-11-01 10:40:00,639 [myid:] - INFO  [main:[email protected]] - Starting server
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:host.name=com.sunwayland.pspaceplus
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:java.version=1.8.0_212
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:java.vendor=AdoptOpenJDK
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:java.home=/usr/local/jdk8u212-b03/jre
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:java.class.path=/usr/local/zookeeper-3.4.10/bin/../build/classes:/usr/local/zookeeper-3.4.10/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/usr/local/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../conf:
2019-11-01 10:40:00,648 [myid:] - INFO  [main:[email protected]] - Server environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2019-11-01 10:40:00,649 [myid:] - INFO  [main:[email protected]] - Server environment:java.io.tmpdir=/tmp
2019-11-01 10:40:00,649 [myid:] - INFO  [main:[email protected]] - Server environment:java.compiler=<NA>
2019-11-01 10:40:00,650 [myid:] - INFO  [main:[email protected]] - Server environment:os.name=Linux
2019-11-01 10:40:00,650 [myid:] - INFO  [main:[email protected]] - Server environment:os.arch=amd64
2019-11-01 10:40:00,650 [myid:] - INFO  [main:[email protected]] - Server environment:os.version=3.10.0-327.4.5.el7.x86_64
2019-11-01 10:40:00,650 [myid:] - INFO  [main:[email protected]] - Server environment:user.name=root
2019-11-01 10:40:00,650 [myid:] - INFO  [main:[email protected]] - Server environment:user.home=/root
2019-11-01 10:40:00,651 [myid:] - INFO  [main:[email protected]] - Server environment:user.dir=/usr/local/zookeeper-3.4.10/bin
2019-11-01 10:40:00,659 [myid:] - INFO  [main:[email protected]] - tickTime set to 2000
2019-11-01 10:40:00,659 [myid:] - INFO  [main:[email protected]] - minSessionTimeout set to -1
2019-11-01 10:40:00,659 [myid:] - INFO  [main:[email protected]] - maxSessionTimeout set to -1
2019-11-01 10:40:00,672 [myid:] - INFO  [main:[email protected]] - binding to port 0.0.0.0/0.0.0.0:2181
           

验证没有问题。

4. 配置supervisor配置文件

[program:zookeeper] ;程序名称,终端控制时需要的标识
command=/usr/local/jdk8u212-b03/bin/java -Dzookeeper.log.dir=/usr/local/zookeeper-3.4.10/bin/../logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper-3.4.10/bin/../build/classes:/usr/local/zookeeper-3.4.10/bin/../build/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/usr/local/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.4.10/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg ; 运行程序的命令
directory=/usr/local/zookeeper-3.4.10/bin/ ; 命令执行的目录
autostart=false
autorestart=true
startretries=3
stopasgroup=true
stopsignal=INT
priority=1
``