Eu quero que a saída de saída de iostat
seja impressa periodicamente e registrada. Executar o comando no shell imprime os campos normais conforme o esperado:
# iostat
avg-cpu: %user %nice %system %iowait %steal %idle
50.11 0.00 0.09 0.05 0.00 49.75
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
mmcblk0 0.83 8.74 5.94 60203 40924
no entanto, converter isso em um serviço systemd
faz com que ele perca alguns dígitos ao ser plotado:
[ 6985.525825] iostat[1238]: Linux 4.14.0 (02c0008119356e06) 07/17/18 _armv7l_ (4 CPU)
[ 6985.530177] iostat[1238]: avg-cpu: %user %nice %system %iowait %steal %idle
[ 6985.531455] iostat[1238]: 50.11 ### NO DIGITS? WHY NOT? ###
[ 6985.532203] iostat[1238]: Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
[ 6985.534054] iostat[1238]: mmcblk0 0.83 8.62 5.93 60203 41403
Não há nada de especial no arquivo da unidade, eu o uso como modelo e funcionou até agora:
~# cat /lib/systemd/system/iostat.service
[Unit]
Description=Iostat
[Service]
Type=simple
ExecStart=/usr/bin/iostat
Restart=always
RestartSec=120
StandardOutput=syslog+console
[Install]
WantedBy=basic.target
Atualizar
A versão em que o problema está se manifestando é systemd 234
. Tentar a mesma receita em uma versão mais recente systemd 237
não está mostrando problemas. Poderia ser um bug resolvido no systemd.
Tags systemd systemd-journald