在使用 supervisor 管理 Java 进程中,command 命令比较长,所以想拆分这一部分,supervisor 好像并不支持这样的写法,还是我的调用变量的写法不对。
; 项目的基本配置
[setting:variables]
; Java 启动时占用的端口
server_port=
; Java 包运行的服务器地址,当启用 JMX 监控时取消注释
; server_host=
; 当前部署的环境为测试环境:test ,还是生产环境:prod
server_prod=test
; Java 包启用的用户,默认为 nginx ,可选为 root
server_user=nginx
; Java 包所在的目录
dir=
job_name=
module_name=
; Java 包启动的基本命令
[usage:java]
java_home=/usr/local/jdk8/bin/java -jar
java_memory=-Xms256m -Xmx256m -XX:MaxMetaspaceSize=256M
springboot_options=-Dspring.profiles.active=%(server_prod)s
java_path=%(setting:variables:dir)s/content/%(setting:variables:job_name)s/%(setting:variables:module_name)s.jar
; JMX 监控配置
[monitor:jmx]
jmx_start=-Dcom.sun.management.jmxremote
jmx_host=-Djava.rmi.server.hostname=%(server_host)s
jmx_port=-Dcom.sun.management.jmxremote.port=1%(server_port)s
jmx_rmi_port=-Dcom.sun.management.jmxremote.rmi.port=1%(server_port)s
jmx_ssl=-Dcom.sun.management.jmxremote.ssl=false
jmx_auth=-Dcom.sun.management.jmxremote.authenticate=false
; Supervisor 项目运行配置
[program:%(setting:variables:job_name)s-%(setting:variables:module_name)s]
command=%(usage:java:java_home)s \
%(usage:java:java_memory)s \
%(usage:java:springboot_options)s \
%(usage:java:java_path)s \
; 需要 JMX 监控时取消注释
; %(monitor:jmx:jmx_start)s \
; %(monitor:jmx:jmx_host)s \
; %(monitor:jmx:jmx_port)s \
; %(monitor:jmx:jmx_rmi_port)s \
; %(monitor:jmx:jmx_ssl)s \
; %(monitor:jmx:jmx_auth)s \
autostart=true
autorestart=true
startsecs=10
startretries=3
user=%(setting:variables:server_user)s
priority=999
redirect_stderr=true
stopasgroup=false
killasgroup=false
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=20
stdout_logfile=%(setting:variables:dir)s/logs/%(setting:variables:job_name)s/%(setting:variables:module_name)s.log
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.