Как начать работу в качестве привилегированного пользователя в Upstart?

Я использую последнюю версию выскочки для ubuntu 10.4 LTS. upstart запускается с флагом ядра --debug.

Я создаю настраиваемую конфигурацию заданий для демона nzbget. В основном это задание имеет сценарий предварительного запуска, который монтирует файловую систему, сценарий после запуска, который отключает файловую систему и строку exec nzbget -D.

Проблема в том, что демон nzbget необходимо запустить как не привилегированный пользователь. Эта функция уже включена в nzbget. Действительно, когда я бегу с консоли sudo nzbget -D, процесс выполняется как пользователь, не имеющий привилегий. Но когда я начинаю работу с выводом с помощью строки exec nzbget -D, процесс nzbget -D выполняется как root. Как сказано в кулинарной книге выскочки, я попытался использовать пользователя su -c «nzbget-D», а также start-stop-daemon без ожидаемой строфы, как было рекомендовано. Но для обеих команд, как и выскочка, отслеживает неправильный PID, я думаю, он видит, что основной процесс убит (из-за выскользненных журналов) в конце процесса запуска и, таким образом, запускает сценарий постпроцесса, который я не хочу.

=> Как я могу сделать это правильно? Как получается, что команда exec nzbget -D upstart заставляет процесс запускаться как root, тогда как команда sudo nzbget -D заставляет его работать как пользователь без привилегий?

14
задан 15 December 2011 в 05:25

0 ответов

Другие вопросы по тегам:

Похожие вопросы: