2017-01-04 3 views
0

Я хочу, чтобы некоторые из моих пользователей могли перезапускать процессы, управляемые Supervisor. Поэтому я хочу, чтобы быть в состоянии выполнить такую ​​команду как некорневой пользователь:Перезапустить управляемый процесс Supervisor без root

supervisorctl restart my_process 

ответ

0

По супервизора по умолчанию использует сокет Unix для обмена данными между supervisorctl и supervisord. Это устанавливается в файле конфигурации, как это:

[unix_http_server] 
file=/var/tmp/supervisord.sock 
chmod=0770 

Только пользователи с доступом к этому файлу сокета могут отправлять сообщения через них. По умолчанию владелец и группа этого файла сокета принадлежат пользователю, который запускает процесс supervisord, который обычно равен root. Однако вы можете изменить пользователя/группы с опцией chown:

chown=myuser:mygroup 

Вы, конечно, можете также изменить параметр chmod и установить его, например 0777, чтобы дать всем пользователям доступ к розетке, но я бы обескуражить, что ,

Есть даже варианты, требующие имя пользователя и пароль для проверки подлинности HTTP через этот сокет. См. supervisor documentation для более подробной информации.

Смежные вопросы