异常现象
supervisor启动flink后便无法再次管理flink supervisor无法删除flink的java进程
启动命令方式
start-cluster.sh脚本中有一些shell配置指令 不单单是一条启动指令
flink安装包中自带启动和停止的脚本
要求supervisor管理flink的时候不能使用默认的管理方式
supervisor自定义配置
supervisord中当有一个命令这反过来又产生另一个过程,supervisord无法杀死它
当我运行这个从supervisord并尝试从supervisorctl停止,只有顶级的过程就会被杀死,但不是实际的Java进程
选项stopasgroup=true应在supervisord程序段被设置为停止,不仅父进程,而且子进程
启动flink后主进程会自动创建很多的子进程
所以使用supervisord终止flink进程的时候不能使用supervisor默认只杀掉子进程中的主进程的方式 而是需要杀掉整个子进程的进程组
flink被supervisor成功启停
flink前后台启动方式设置
前台启动 "$FLINK_BIN_DIR"/jobmanager.sh start-foreground
后台启动结果
前后台启动方式进程查询结果
前台方式只启动一个进程
后台方式启动了七个进程
后台方式启动调试
前台方式启动调试
解决方式
supervisor可以完全正常启动flink服务
flink启动异常
修改flink.ini
添加enviroment变量
[program:flink]
directory=/app/taishi/flink/flink-1.11.1/
command=/app/taishi/flink/flink-1.11.1/bin/start-cluster.sh
environment=JAVA_HOME="/app/taishi/jdk"
process_name=%(program_name)s
autostart=true
startsecs=60
user=admin
stopasgroup=true
redirect_stderr=true
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/taishi/logs/flink_supervisord.log
原来的ini
[program:flinkcluster]
directory=/app/taishi/flink/flink-1.11.1/
command=/app/taishi/flink/flink-1.11.1/bin/start-cluster.sh
environment=JAVA_HOME="/app/taishi/jdk",CLASSPATH=".:/app/taishi/jdk/lib/dt.jar:/app/taishi/jdk/lib/tools.jar:/app/taishi/jdk/lib/libsigar-amd64-linux.so",PATH="/app/taishi/jdk/bin:%(ENV_PATH)s"
priority=220
autostart=true
autorestart=false
stopasgroup=true
killasgroup=true
process_name=%(program_name)s
user=root
redirect_stderr=true
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/taishi/logs/flinkcluster_supervisord.log
最新的ini