我已经设置了主管来监控一些进程。因为我通过远程脚本部署,所以我需要一种无需 sudo 即可发送主管启动/停止命令的方法。但我不确定如何做到这一点。
有没有办法在主管中以非 root 用户身份运行指定的命令?
答案1
该supervisorctl
命令可以以非 root 用户身份运行。您需要做的就是授予它连接到该supervisord
进程的权限。
您需要在相应的服务器部分配置访问权限,因此在[unix_http_server]
部分或[inet_http_server]
部分,无论您使用哪种supervisord
设置。
如果您使用[unix_http_server]
设置,您可以添加chmod
和/或chown
指令来控制谁可以访问 UNIX 域套接字,例如:
[unix_http_server]
chown = youruser
这样youruser
就可以写入该套接字,这意味着supervisorctl
可以发送supervisord
命令。您还可以添加一个组:
[unix_http_server]
chown = youruser:yourgroup
最后,你必须重新supervisord
启动service supervisor restart