Выскочка - Bluepill не запускается без sudo

У меня есть сервис для запуска bluepill (Ruby gem для мониторинга процессов). Конфигурация выскочки ниже.

description "Start up the bluepill service"

start on runlevel [2]
stop on runlevel [016]

exec sudo /home/deploy/.rvm/wrappers/<app_name>/bluepill load /home/deploy/websites/<app_name>/current/config/server/staging/delayed_job.bluepill

Я хочу, чтобы bluepill запускался с правами root.

Все выскочки конфигурации запускаются с правами root, когда машина загружается, верно? Таким образом, в строке upstart config exec не требуется sudo.

Приведенный выше скрипт работает просто отлично, и bluepill запускается при загрузке системы. Но если я удалю sudo в строке exec, bluepill не запустится при загрузке системы. Глядя на журнал, кажется, что bluepill запускается как непривилегированный пользователь и, таким образом, терпит неудачу.

Кто-нибудь может объяснить, почему?

Я не хочу, чтобы sudo использовался, потому что, когда я даю respawn, выскочка отслеживает PID процесса sudo, а не PID фактический процесс bluepill.

1
задан 16 July 2013 в 12:50

1 ответ

1112 Я серьезно сомневаюсь, что ваша работа начинается правильно. Скорее всего, вы найдете в /var/log/upstart/yourjobconfigname.log следующую строку:

sudo: извините, у вас должен быть tty для запуска sudo

Судо предназначен для использования в интерактивном режиме. См. Как мне использовать sudo из сценария upstart? для подробностей.

Вы должны пересмотреть свой дизайн. Будет гораздо лучше создать выделенного системного пользователя, который будет запускать процесс работы и применять необходимые разрешения. В вашей конфигурации работы вам нужно добавить setuid и, возможно, setgid stanzas.

description "Start up the bluepill service"

start on runlevel [2]
stop on runlevel [016]

setuid bluepill
setgid bluepill
exec sudo /home/deploy/.rvm/wrappers/<app_name>/bluepill load /home/deploy/websites/<app_name>/current/config/server/staging/delayed_job.bluepill

bluepill добавляется назначенным пользователем системы. Подробнее см. adduser .

sudo adduser --system --group --no-create-home bluepill

На основании билетов, упомянутых в комментарии, добавляется expect daemon строфа. При запуске bluepill процесс запускается как демон, например там будет две вилки. Без expect daemon раздел Upstart не может правильно отслеживать PID. Как сказано в записи , ожидайте строфу Эта строфа чрезвычайно важна .

0
ответ дан 16 July 2013 в 12:50

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

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