Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否允许root以外的用户重新启动supervisorctl进程?_Python_Supervisord - Fatal编程技术网

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

Python 是否允许root以外的用户重新启动supervisorctl进程?,python,supervisord,Python,Supervisord,我已经让supervisord以用户stavros的身份运行了一个程序,我想给同一个用户使用supervisorctl重新启动程序的权限。不幸的是,我只能用sudo来做,否则我会在socket.py中得到一个权限拒绝错误。如何允许自己重新启动supervisord进程?也许您应该尝试使用userStatvros重新启动您的superviord进程,我个人认为以root用户身份运行supervisord是个坏主意,但如果您想这样做,同时允许其他用户完全重新启动,我会这样做的 1/在您的系统上创建一

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

也许您应该尝试使用user
Statvros重新启动您的
superviord
进程,我个人认为以root用户身份运行supervisord是个坏主意,但如果您想这样做,同时允许其他用户完全重新启动,我会这样做的

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

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

3/在supervisord配置中,使用[unix\U http\U server]部分中的以下行:

chmod=0770                 ; socket file mode (default 0700)
chown=root:supervisor      ; socket file uid:gid owner
它将保证所选用户可以访问管理套接字

4/在重新启动模式下的系统初始化机制中添加supervisord(初始化、systemd、upstart等…)。这取决于你的系统。Respawn模式意味着如果进程崩溃或停止,它将自动重新启动


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

Hmm,这实际上是可行的,因为我只需要在该用户下执行它。我会试试,然后回来汇报,谢谢!这成功了,谢谢!我不知道supervisorctl用来与SupervisorORD通信的是
unix\uHTTP\uServer
。由于默认的debian配置,我只能以root用户身份运行,但我正在删除应用程序的权限,所以应该可以。