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

Allow user other than root to restart supervisorctl process?

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

也许您应该尝试使用用户 stavros.

重新启动您的 superviord 进程

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

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

2/ 将相关用户放入组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 完全重启的完全关闭。