Execute o script Python na inicialização usando upstart

2

Estou tentando criar um script upstart para executar um script python na inicialização. Em teoria, parece bastante simples, mas eu simplesmente não consigo fazê-lo funcionar. Estou usando um script de esqueleto que encontrei aqui e alterado.

description "Used to start python script as a service"
author "Me <[email protected]>"

# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart know the process will detach itself to the background
expect fork

# Start the process
script
  exec python /usr/local/scripts/script.py
end script

O script de teste que eu quero executar é atualmente um script python simples que é executado sem qualquer problema quando executado a partir de um terminal.

#!/usr/bin/python2

import os, sys, time 
if __name__ == "__main__":  
    for i in range (10000):
        message = "UpstartTest " , i , time.asctime() , " - Username: " , os.getenv("USERNAME")
        #print message
    time.sleep(60)
        out = open("/var/log/scripts/scriptlogfile", "a")
        print >> out, message
        out.close()
  • A localização / var / log / scripts tem permissões 777
  • O arquivo /usr/local/scripts/script.py tem permissões 775
  • O script upstart /etc/init.d/pythonupstart.conf tem permissões 755
por MarcusMaximus 22.11.2012 / 00:54

2 respostas

0

Os scripts de início rápido entram em / etc / init e não /etc/init.d , Foi uma semana longa naquela semana. : (

    
por 19.07.2014 / 16:35
1
  • Não use respawn inicialmente. Vejo:
  • O python realmente bifurca? Caso contrário, remova fork .
  • Você pode simplificar a sub-rotina para começar seu trabalho simplesmente:

    exec python /usr/local/scripts/script.py

  • O que /var/log/upstart/yourjob.log mostra?

por 26.11.2012 / 18:22