[program:genkins] ; 管理的子程序名字,要和项目有关联,不能乱写 command = /etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/share/java/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --debug=5 ; priority=1 ; 数字越高,优先级越高(对不同进程而言) numprocs=1 ; 启动几个进程 autostart=true ; 随着supervisord的启动而启动 autorestart=false ; 自动重启 startsecs = 5 ;启动后运行5s后进程仍存在将被认为服务启动成功 startretries=10 ; 启动失败时的最多重试次数 stopsignal=KILL ; 用来杀死进程的信号 stopwaitsecs=10 ; 发送SIGKILL前的等待时间 redirect_stderr=true ; 重定向stderr到stdout stopasgroup=true ; 重要的设置,一起管理子进程 stdout_logfile_maxbytes=20MB ; 日志文件大小限制 stdout_logfile_backups=10 ; 日志文件备份数量 stdout_logfile =/my/software/supervisor/logs/genkins-supervisor.log ;错误日志输出位置,目录要存在
而如果用genkins结合supervisor来实现自动部署,那么shell脚本如下:
#先停止服务 supervisorctl -c /my/software/supervisor/supervisord.conf stop MyDotNetCore-test-api #编译生成文件,不使用独立程序 cd /my/code_source/test-api/default/MyDotNetCore.Project.WebApi/ dotnet publish -r linux-x64 --self-contained false -o /my/publish/test-api/ #重新启动服务 supervisorctl -c /my/software/supervisor/supervisord.conf start MyDotNetCore-test-api