O script upstart do Ubuntu para tracd trava no início / parada

1

Estou tentando configurar um script upstart do Ubuntu (12.04 LTS) para gerenciar o servidor Web interno do Trac como um servidor upstream para o nginx.

Aqui está o meu script de inicialização /etc/init/tracd.conf . Eu usei o link (primeiro e único resultado do google para 'upstart' e 'upstart' e tracd ') como ponto de partida:

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

Sempre que eu executo isso através de sudo service tracd start ou sudo service tracd stop , ele simplesmente trava e nunca retorna. sudo service tracd status retorna "tracd start / killed, processo 748". O log upstart /var/log/upstart/tracd.log não contém informações nem o syslog.

Se eu simplesmente copiar e colar sudo tracd -d -p 8000 -b 192.168.1.2 --user=www-data --group=www-data /trac/proj na linha de comando, o servidor funcionará bem.

Aqui está o que eu tentei:

  • pesquisei - difícil. Leia a página do livro de receitas do Ubuntu e todos os guias do Trac: TracInstall , TracNginxRecipe , TracStandalone
  • Use expect fork , expect daemon ou omita totalmente a linha expect .
  • Use script / end script em torno da linha exec.
  • Use setuid www-data / setgid www-data .
  • Use sudo -u www-data e até sudo su www-data -c "..."
  • Criada uma pasta gravável em www-data /var/run/trac/ e especificada --pidfile=/var/run/trac/tracd.pid .
  • Examine a saída de sudo -u www-data env para ver se há alguma variável de ambiente especial na linha de comando, porque ela está funcionando bem quando executada a partir do shell. O Trac não parece depender de nenhuma variável de ambiente.
  • Usou o comando muito mais detalhado, mas idêntico: sudo /usr/bin/python /usr/local/bin/tracd --daemonize --port=8000 --hostname=192.168.1.2 --user=www-data --group=www-data /trac/proj
  • Verificado por daemons de tracd de zumbis com ps -aux | grep trac .

Coisas que não tentei:

  • Abandone o início de um script init.d.

EDIT: corrigido

A remoção da sinalização --daemonize parece ter corrigido. Obrigado Mike! Aqui está o meu script de arranque:

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
    
por jcampbelly 31.12.2012 / 03:22

1 resposta

2

Eu não acho que você precisa do sudo, já que o tracd está configurando o usuário / grupo

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

Se isso não funcionar, tente configurar o usuário em execução no upstart via setuid e 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

EDITAR

remova o sinalizador -d. upstart você não pode executar algo como um daemon que precisa agir como se estivesse sendo executado em primeiro plano

    
por 31.12.2012 / 04:17