Я пытаюсь настроить сценарий upstart Ubuntu (12.04 LTS) для управления встроенным веб-сервером Trac в качестве восходящего сервера для nginx.
Вот мой сценарий инициализации /etc/init/tracd.conf
. я использовал http://codebyko.se/2010/11/26/tracd-with-upstart-on-ubuntu/ (первый и единственный результат Google для 'upstart' и 'tracd') в качестве отправной точки:
description "Tracd Web Server"
start on startup
stop on shutdown
expect daemon
exec sudo tracd -d -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj
Всякий раз, когда я это прохожу sudo service tracd start
или sudo service tracd stop
, он просто зависает и больше не возвращается. sudo service tracd status
возвращает «запуск / завершение tracd, процесс 748». Журнал выскочки /var/log/upstart/tracd.log
не содержит информации, как и системный журнал.
Если я просто скопирую и вставлю sudo tracd -d -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj
в командной строке сервер работает нормально.
Вот что я пробовал:
expect fork
, expect daemon
или опустите expect
линия целиком.script
/end script
блок вокруг строки exec.setuid www-data
/setgid www-data
.sudo -u www-data
и даже sudo su www-data -c "..."
/var/run/trac/
и указал --pidfile=/var/run/trac/tracd.pid
.sudo -u www-data env
чтобы узнать, есть ли какие-либо специальные переменные среды из командной строки, потому что он отлично работает при запуске из оболочки. Trac, похоже, не полагается ни на какие переменные среды.sudo /usr/bin/python /usr/local/bin/tracd --daemonize --port=8000 --hostname=192.168.1.2 --user=www-data --group=www-data /trac/proj
ps -aux | grep trac
.Вещи, которые я не пробовал:
Удаление --daemonize
flag вроде бы исправил. Спасибо, Майк! Вот мой рабочий сценарий выскочки:
description "Trac Web Server"
start on startup
stop on shutdown
setuid www-data
setgid www-data
exec tracd -p 8000 -b 192.168.1.2 /trac/proj
Я не думаю, что вам нужно sudo, поскольку tracd устанавливает пользователя / группу
description "Tracd Web Server"
start on startup
stop on shutdown
expect daemon
exec tracd -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj
Если это не сработает, попробуйте настроить запущенного пользователя в выскочку через setuid
и setgid
description "Tracd Web Server"
start on startup
stop on shutdown
setuid www-data
setgid www-data
expect daemon
exec tracd -p 8000 -b 192.168.1.2 /trac/proj
РЕДАКТИРОВАТЬ
удалите флаг -d .. выскочка, вы не можете запускать что-то как демон, он должен действовать так, как будто он работает на переднем плане