关于 supervisorctl 无法 stop 程序的问题解决方法
在最近的一次部署中,由于启动应用需要的参数很多,我把这个启动命令放到了一个 bash 文件中,类似于这样
/usr/local/bin/start.sh
文件内容如下:
#!/bin/bash
xpra --start=/usr/bin/brave-browser
然后在 supervisor
配置中,/etc/supervisor/conf.d/xpra.conf
文件如下:
[program:xpra]
command=/usr/local/bin/start.sh
实际使用 supervisorctl stop xpra
后,supervisor
显示程序已经 stop ,但是实际 ps
查看程序还在运行。
原因是 supervisor
停止的是 /bin/bash
这层,而这层与后面的命令是脱离的。
修改方案是把 /usr/local/bin/start.sh
中最后的执行语句使用 exec
来执行,即修改为下面的这样:
#!/bin/bash
exec xpra --start=/usr/bin/brave-browser
Thank you for sharing on steem! I'm witness fuli, and I've given you a free upvote. If you'd like to support me, please consider voting at https://steemitwallet.com/~witnesses 🌟