iniciar serviço no systemd não terminará

0

Criado um executável e planejado para usá-lo como serviço.

Ao executá-lo no Ubuntu 12.04 ou 14.04 usando o upstart, ele funciona bem.

No entanto, no Ubuntu 15.04 (com o systemd), este comando não terminará:

systemctl start mySrv01

Poderia ser porque eu não fechei stdin? O novato não parece se importar. Alguma ideia? Obrigado.

    
por packetie 27.08.2015 / 00:07

2 respostas

1
% bl0ck_qu0te%

Você também não precisa fazer isso com o systemd. Você tem uma incompatibilidade de protocolo de prontidão. O arquivo da unidade de serviço informa que o programa emprega o protocolo Type=forking de prontidão. Mas o seu próprio programa, na verdade, não o fez.

O protocolo de preparação forking é difícil de acertar e é fácil errar. Quase nenhum programa na natureza realmente emprega isso. Apenas faça sua unidade de serviço Type=simple se é isso que já era para começar.

Além disso, você não precisa se preocupar em "dessenizar" fazendo coisas como fechar descritores de arquivos abertos. Seu programa já está com o nome .

Leitura adicional

por JdeBP 14.09.2015 / 19:46
0

Feito para o systemd, o processo do daemon mySrv01 terá que bifurcar um processo filho e, melhor, fechar stdin.

Não precisa fazer isso quando estiver usando upstart, não sei por quê.

    
por packetie 31.08.2015 / 19:06