Upstart - manipulação de parada quando o processo é morto

0

Eu tenho a configuração inicial do meu processo de java:

/etc/init/myjar.conf

description "my jar"
author "me"

start on runlevel [2345]
stop on shutdown

expect fork

script
    chdir /opt/myjar/
    java -jar myjar.jar >/var/log/myjar/myjar.log 2>&1
end script

post-start script
    emit myjar-local_running
end script

O serviço funciona bem, exceto pelo seguinte cenário:

  1. o processo é eliminado de fora, ou seja: killall java
  2. tentando parar o serviço: sudo service myjar stop < --- suspensão ......

O processo está no seguinte estado:

myjar start/killed, process 123

Não é possível reiniciá-lo ...

Qualquer ajuda seria apreciada.

    
por alexs333 29.10.2014 / 01:09

1 resposta

2

De acordo com o manual de início de página espere fork :

   Upstart will expect the process executed to call fork(2) exactly once.

e de acordo com comentário 5 em init: trabalho preso com o fork / daemon quando o pai colhe o bug :

% bl0ck_qu0te%

No seu caso, upstart provavelmente segue chdir pid.

Seu script upstart parece um trabalho de tarefa porque nem chdir nem java forquilha de comando, então, remover expect fork deve corrigir o problema.

    
por Lety 29.10.2014 / 13:04