Isso está acontecendo provavelmente por causa da limitação de taxa no journalctl conf. Verifique RateLimitInterval
e RateLimitBurst
no arquivo /etc/systemd/journald.conf
.
Estou usando o servidor Ubuntu 16.04, criei um script básico de nodejs e o empacotei em um serviço systemd simples.
Conteúdo do api.service em /lib/systemd/system/api.service
:
[Unit]
Description=api
After=network.target
[Service]
WorkingDirectory=/var/node/api
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5s
StartLimitInterval=60s
StartLimitBurst=5
[Install]
WantedBy=multi-user.target
Quando vejo os logs com journalctl -u api.service -n -f
, parece que algumas das minhas linhas de saída de script não são registradas, especialmente quando o script produz muitas linhas de registro em um curto período de tempo.
Por exemplo, se o script nodejs for apenas um loop for simples que produza os primeiros 3000 inteiros, apenas cerca de 2.500 linhas parecem ser registradas nos logs.
Conteúdo do index.js em /var/node/api/index.js
:
for (var i = 1; i <= 3000; i++) {
console.log(i);
}
console.log("end of script");
Ao visualizar os registros com journalctl -u api.service -n -f
, recebo apenas cerca de 2.500 linhas:
May 04 13:52:15 test systemd[1]: Stopping api...
May 04 13:52:15 test systemd[1]: Stopped api.
May 04 13:52:15 test systemd[1]: Started api.
May 04 13:52:15 test node[20993]: 1
May 04 13:52:15 test node[20993]: 2
May 04 13:52:15 test node[20993]: 3
May 04 13:52:15 test node[20993]: 4
May 04 13:52:15 test node[20993]: 5
May 04 13:52:15 test node[20993]: 6
...
...
...
May 04 13:52:16 test node[20993]: 2497
May 04 13:52:16 test node[20993]: 2498
May 04 13:52:16 test node[20993]: 2499
May 04 13:52:16 test node[20993]: 2500
May 04 13:52:16 test node[20993]: 2501
Também é importante notar que o "fim do script" também não é enviado, mesmo que eu o atrase com um setTimeout.
Alguma ideia do que está errado aqui?