python - 允许 root 以外的用户重新启动 supervisorctl 进程?

标签 python supervisord

我让 supervisord 以用户 stavros 的身份运行一个程序,我想授予同一用户使用 supervisorctl 重新启动它的权限。不幸的是,我只能用 sudo 来做,否则我会在 socket.py 中得到一个权限被拒绝的错误。我怎样才能允许自己重启 supervisord 进程?

最佳答案

就我个人而言,我认为以 root 身份运行 supervisord 是个坏主意,但如果你想这样做,同时允许其他用户完全重启,我会这样做。

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

2/将相关用户放入group supervisor

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。这取决于您的系统。重生模式意味着进程在崩溃或停止时将自动重新启动。

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

关于python - 允许 root 以外的用户重新启动 supervisorctl 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541685/

相关文章:

docker - fig docker 监控损坏的容器

python - 为什么应用于实例的 Python 帮助函数在某些情况下返回有关父类的页面,而在其他情况下则不返回?

python - Pandas 合并101

python - Pocketsphinx python 在迭代音频时不返回最后一句话

python - Supervisord 进程控制 - 停止单个子进程

Dockerfile supervisord 找不到路径

docker - docker的supervisord的替代品

python - 使用Python订阅UDP多播

Python 模式负向后看