关于 supervisorctl 无法 stop 程序的问题解决方法

in #cn4 hours ago

在最近的一次部署中,由于启动应用需要的参数很多,我把这个启动命令放到了一个 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
Sort:  

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 🌟