python – 允许root以外的用户重启supervisorctl进程?

我有supervisord运行程序作为用户stavros,我想给予相同的用户权限,使用supervisorctl重新启动它.不幸的是,我只能用sudo来做,否则我在socket.py中得到一个权限被拒绝错误.我怎样才能允许自己重启supervisord进程? 最佳答案 就个人而言,我认为以root身份运行supervisord是一个坏主意,但如果你想这样做,同时允许其他用户完全重启,我就是这样做的.

1 /在您的系统上创建一个主管组,该组将具有supervisord的重启权限

2 /将相关用户置于组主管中

3 /在supervisord配置中,使用[unix_http_server]部分中的以下行:

chmod=0770                 ; socket file mode (default 0700)
chown=root:supervisor      ; socket file uid:gid owner

它将保证可以从所选用户访问管理套接字.

4 /在重构模式(init,systemd,upstart等)中添加系统初始化机制中的supervisord.这取决于您的系统. Respawn模式意味着如果崩溃或停止,该过程将自动重新启动.

5 /从所选用户之一,您应该能够使用supervisorctl来运行命令,包括完全关闭,这将触发supervisord的完全重启.

点赞