systemctl não reinicia o serviço até que ssh atinja a instância do AWS

0

Estou hospedando um bitcoind no meu insta do AWS EC2 e fiz isso como um serviço do usuário usando o seguinte arquivo de serviço:

[Unit]
Description=Bitcoind

[Service]
Type=simple
ExecStart=/usr/local/bin/bitcoind
Restart=always

[Install]
WantedBy=default.target

Em dias normais, as coisas funcionam bem. Percebo que às vezes o bitcoind é reiniciado bastante, mas isso é outra história e, na perspectiva systemctl , pelo menos, pode ser reiniciado.

Aqui incluo um log que mostra as partes normal e problemática:

Mar 02 10:39:46 ip- systemd[2751]: Started Bitcoind.
Mar 02 10:40:07 ip- systemd[2751]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 02 10:40:07 ip- systemd[2751]: Stopped Bitcoind.
Mar 02 10:40:07 ip- systemd[2751]: Started Bitcoind.
Mar 02 21:06:26 ip- systemd[2751]: Stopping Bitcoind...
Mar 02 21:06:28 ip- systemd[2751]: Stopped Bitcoind.
Mar 03 03:37:45 ip- systemd[28091]: Started Bitcoind.
Mar 03 03:59:15 ip- systemd[28091]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 03 03:59:15 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 03:59:15 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:09 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:16 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:22 ip- systemd[28091]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 03 04:01:22 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 04:01:22 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:14:35 ip- systemd[28091]: Stopping Bitcoind...
Mar 03 04:14:35 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 04:15:44 ip- systemd[13180]: Started Bitcoind.

Ocasionalmente, o serviço seria interrompido, mas o systemctl não o reiniciava. Ele é reiniciado somente quando eu ssh para a instância e parece "fazer tudo voltar a viver" novamente.

Do log isso acontece em

Mar 02 21:06:26 ip- systemd[2751]: Stopping Bitcoind...
Mar 02 21:06:28 ip- systemd[2751]: Stopped Bitcoind.
Mar 03 03:37:45 ip- systemd[28091]: Started Bitcoind.

Aparentemente, systemctl percebe a parada de bitcoind , mas só reinicia até eu ssh para a instância.

Existe alguma direção que eu possa resolver ainda mais o problema. Qualquer ajuda é apreciada e eu farei o meu melhor para fornecer o máximo de informação possível.

    
por Calvin Lau 03.03.2018 / 05:50

1 resposta

1

I have made it as a user service […] It is restarted only when I ssh to the instance […]

A instância por usuário do systemd só é executada quando você tem uma ou mais sessões de login ativas. Como você pode ver no seu log, há três instâncias dele com três IDs de processo diferentes. Quando a última sessão de login é interrompida, systemd-logind interrompe a instância por usuário do systemd e inicia uma nova quando a próxima sessão de login é iniciada. Naturalmente, se não houver um gerenciador de serviços, os serviços gerenciados não estarão em execução.

Você pode alterar isso usando o subcomando enable-linger do comando loginctl .

Leitura adicional

por 03.03.2018 / 18:55