У меня есть приложение, которое запускается под учетной записью пользователя (на основе 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 в пользовательском каталоге)
Это действительно лучший способ сделать это? Мне это кажется очень неуклюжим, но я не администратор.