Назад | Перейти на главную страницу

Запуск процесса супервизора от имени пользователя root

Моя цель - запустить sudo внутри одной из программ:

[program:doStaff]
command=sudo python manage.py doStaff
autostart=true
autorestart=true
stderr_logfile=/var/log/doStaff.err.log
stdout_logfile=/var/log/doStaff.out.log

Вот [unix_http_server] из supervisord.conf:

[unix_http_server]
file=/var/run/supervisor.sock  
chmod=0770   

Пытался установить пользователя супервизора как root внутри supervisord.conf, но это не помогло.

Я пытаюсь запустить этот процесс как root, поскольку этот сценарий удаляет некоторые файлы в системе.

В конфигурации вашей программы (program: doStaff) добавьте эту строку:

user=root

Вы должны настроить sudo без пароля для пользователя и запустить свой скрипт от имени этого пользователя.

Сначала отредактируйте файл sudoers:

sudo visudo

В конце этого файла добавьте:

скриптраннер ALL = (ВСЕ) NOPASSWD: ALL

Теперь запустите ваш скрипт как пользователь скриптраннера. Конечно, вы должны создать этого пользователя.