Como faço para que um serviço pare de uma vez?

4

Eu usei o script aqui para criar um serviço para iniciar e parar um servidor Minecraft na inicialização e no desligamento. O script basicamente inicia o arquivo jar do servidor em uma tela GNU (ele também faz backups e atualizações, mas eles estão funcionando bem).

Isso inicia o servidor bem, mas interrompe o servidor abruptamente, em vez de enviar uma mensagem ao servidor, usando o comando /stop para parar o servidor normalmente (como o script deve fazer e faz se sudo service minecraft stop for chamado enquanto o sistema ainda está em execução).

Eu usei sudo update-rc.d minecraft defaults 20 01 , o que deve garantir que o servidor esteja entre os primeiros processos a serem parados.

Eu posso dizer que isso está funcionando, pois as primeiras quatro linhas mostradas após o início de um desligamento são:

[  OK  ] Stopped target Graphical Interface.
         Starting Unattended Upgrades...
[  OK  ] Stopped target Multi-User System
         Stopping LSB: Minecraft server...

Existe então um monte de mensagens de Parar e Parar. O servidor pára abruptamente durante esse período (os clientes são desconectados sem aviso) e, em seguida:

[******] A stop job is running for LSB: Minecraft server (17s / 5min)

com os segundos contando até geralmente cerca de 17 antes das últimas telas - cheias de mensagens antes que o sistema seja desligado.

Estou assumindo que isso significa que o serviço é 'avisado' para parar no início do processo de desligamento, mas leva um tempo para fazê-lo (devido a ele enviando um alerta no servidor, esperando, salvando, etc) enquanto o sistema está aguardando que o script faça isso, ele interrompe outros serviços que fazem com que todos os clientes sejam desconectados antes que a mensagem de aviso seja exibida. Eu tentei adicionar $network a Required-Stop sem sucesso.

O que preciso fazer é fazer com que o serviço pare de uma vez sem que outros serviços parem simultaneamente. Como eu faria isso?

Estou usando o Ubuntu 15.04 em um XenServer.

Veja o log de desligamento completo aqui .

    
por Tugzrida 08.08.2015 / 09:46

0 respostas