Como iniciar um aplicativo no momento da inicialização ou como um serviço

0

para poder iniciar meu aplicativo no momento da inicialização, segui a instrução Upstart.

Eu criei um arquivo /etc/init/poolparty.conf , dentro do qual eu defini o seguinte:

# poolparty - poolparty job file

# 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

# Run before process
pre-start script
    [ -d /var/run/poolparty ] || mkdir -p /var/run/poolparty
    echo "starting Poolparty"
end script

# Start the process
exec /opt/poolparty/bin/poolparty start

Este é um aplicativo que precisa da rede iniciada, o modo multiusuário iniciado. Em qualquer caso, o que a máquina precisa para começar primeiro precisa estar lá. Pode ser iniciado no final do processo de inicialização.

No entanto, quando eu reinicio, nada acontece.

O que mais eu preciso fazer para iniciá-lo? Alguém pode ajudar?

Quando eu digito service poolparty start , eu entendo que o serviço já foi iniciado ou nada. Em qualquer caso, não funciona eu verifiquei.

Então, se alguém pudesse me orientar aqui, seria ótimo. Eu gostaria de verificar o log também.

Btw /opt/poolparty/bin/poolparty é um script executável que define as coisas e chama um aplicativo java. Ele usa o jsvc64 para iniciar um aplicativo java baseado no Tomcat.

    
por MaatDeamon 05.10.2015 / 18:25

1 resposta

1

Como você está dizendo que requer rede e você está criando um novo diretório para que ele também precise de sistema de arquivos local. então você tem que usar

start on (local-filesystems and net-device-up IFACE!=lo)

ou

start on (local-filesystem and started networking)

em vez de

start on runlevel [2345]

e você pode tentar

if [ ! -e /var/run/poolparty ]; then
     /bin/mkdir  /var/run/poolparty
   fi

em vez de

  [ -d /var/run/poolparty ] || mkdir -p /var/run/poolparty
        echo "starting Poolparty"

sugestão: veja o log de início de sessão em /var/log/upstart que o ajudará onde estiver ausente. e também verificar erro de sintaxe do script init usando o comando:

init-checkconf -d /etc/init/poolparty.conf  

e para uma melhor compreensão do script upstart, veja o livro de receitas do Ubuntu de início

    
por pl_rock 05.10.2015 / 20:08