自学内容网 自学内容网

ubuntu使用supervisor设置开机启动程序

参考https://blog.csdn.net/weixin_43656490/article/details/123703499 做了以下配置:

  • 安装supervisor
sudo apt-get update
sudo apt-get install supervisor
  • 建立启动项目
cd /etc/supervisor/conf.d
sudo vim aiDemo.conf
  • 编写我的aiDemo.conf如下:
[program:aiDemo]
command=/home/zhlz/aiDemo2/start.sh
autostart=true
autorestart=true

上述start.sh是一个我已经写好的文件,内容为/home/zhlz/Downloads/jdk-17.0.12/bin/java -jar /home/zhlz/aiDemo2/ai-platform-demo2-0.0.1-SNAPSHOT.jar,目的是为了启动我部署的一个java项目。该sh文件验证过可以运行。

  • 重启supervisor
sudo service supervisor restart

但就是死活跑不起来。通过sudo service supervisor status查看状态,一直都是exit status 127 not expected,网上查资料说是路径配置错误,推荐使用绝对路径,但我确认过路径没有问题。
后来我不用start.sh了,直接把它的内容替换到aiDemo.conf文件里的command处:

[program:aiDemo]
command=/home/zhlz/Downloads/jdk-17.0.12/bin/java -jar /home/zhlz/aiDemo2/ai-platform-demo2-0.0.1-SNAPSHOT.jar
autostart=true
autorestart=true

重启后发现生效了,通过sudo service supervisor status看到:
在这里插入图片描述

最终版

后面发现还是之前aiDemo.conf文件写的有点小问题(没有带sh命令-_-),也为了解决log文件的路径问题,我把两文件做了一些微调后符合预期了:

aiDemo.conf :

[program:aiDemo]
command=sh /home/zhlz/aiDemo2/start.sh
autostart=true
autorestart=true

start.sh :

cd /home/zhlz/aiDemo2
/home/zhlz/Downloads/jdk-17.0.12/bin/java -jar /home/zhlz/aiDemo2/ai-platform-demo2-0.0.1-SNAPSHOT.jar

关闭服务

可能不是最优的,但是至少目前看来有效,可用来关闭supervisor和指定程序:
通过sudo service supervisor status 拿到指定程序的进程号;
通过sudo systemctl stop supervisor 关闭supervisor服务;
通过kill 进程号 关闭指定程序;

中间还跑过sudo supervisorctl stop myservice 和 sudo supervisorctl stop all 。不知道跟成功有没有关系


原文地址:https://blog.csdn.net/qq_23204557/article/details/140662500

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!