#ruby #daemons
#ruby #демоны
Вопрос:
Я пытаюсь запустить демон Ruby, используя daemons
gem.
Он будет запущен как пользователь ‘joe’, но должен измениться на ‘www-data’, как только он будет демонизирован, чтобы он мог получить доступ к файлам, с которыми он будет работать.
Я вижу, что у daemons есть change_privilege
метод для класса Application, но я не могу понять, как использовать его в этом коде:
require 'daemons'
Daemons.run(
File.join(File.dirname(__FILE__), 'worker.rb'),
{
:backtrace => true,
:log_output => true,
:dir_mode => :script,
:log_dir => '/tmp',
:monitor => true
}
)
Комментарии:
1. просто К вашему сведению. Процесс, запущенный пользователем «joe», не сможет изменить идентификатор пользователя is на «www-data». Он должен быть запущен пользователем root.
2. Вы правы, Джо был просто примером 🙂
3. обычно я справляюсь с этим так, чтобы любой пользователь ОС мог установить его в скрипте запуска. или задайте эффективный идентификатор в чем-то вроде god.
Ответ №1:
Вы не должны запускаться от имени www-data
, поскольку это конкретный пользователь apache. Однако вам следует добавить «joe» в свою группу пользователей www, которая может получить доступ к таким файлам.