Лучший сценарий инициализации для запуска приложения от имени отдельного пользователя

У меня есть приложение, которое запускается под учетной записью пользователя (основанное на Plack), и ему нужен сценарий инициализации.

Это кажется простым как " sudo $ user start_server ... ". Я только что написал сценарий LSB с использованием start-stop-daemon, и он действительно неуклюжий и многословный. Это не похоже на правильный путь.

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

Сейчас я работаю с:

start-stop-daemon --background --quiet --start --pidfile $PIDFILE \
                --make-pidfile --chuid $DAEMONUSER \
                --exec $DAEMON -- $DAEMON_OPTS

С DAEMON и DAEMON_OPTS как:

DAEMON="/home/mediamogul/perl5/perlbrew/perls/current/bin/start_server"
DAEMON_OPTS="--port $PORT -- starman --workers $WORKERS /home/mediamogul/MediaMogul/script/mediamogul.psgi"

Затем мне нужно настроить способ обнаружения запуска, потому что это сценарий Perl, поэтому perl отображается как команда, а не как «start_server».

(Я бегу это из Perlbrew для этой учетной записи пользователя, поэтому он полностью отделен от системного Perl, поэтому пути указывают на perl в пользовательском каталоге)

Действительно ли это лучший способ сделать это? Мне это кажется очень неуклюжим, но я не админ.

5
задан jshirley 31 March 2011 в 13:50
поделиться