异常现象
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
[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