Kendi kendine random olarak kapanan zabbix ile ilgileniyordum. Agent bir sekilde SIGTERM aliyor ve kapaniyor bir süre sonra yeniden baslatiliyordu.
Loglara bakinca sunu gördim
Feb 12 14:56:55 gitlab zabbix_agent2[88348]: zabbix_agent2 [88348]: ERROR: cannot open configuration file: open /etc/zabbix/zabbix_agent2.conf: no such file or directory
Ama zabbix agent 2 diye vbirseyin olmamasi gerekiyordu varsa bile acaba benim processi o mu kapatiyordu?
Servis tanimina baktim
cat /lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf"
EnvironmentFile=-/etc/default/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/sh -c '[ -n "$1" ] && kill -s TERM "$1"' -- "$MAINPID"
RestartSec=10s
User=zabbix
Group=zabbix
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
Burada bazi degiskenler dikkatimi cekti nedir bunlar diye arastirinca karsima ilginc seyler cikti.
Neydi bu $MAINPID ve $1 nereden geliyorlardi?
ExecStop=/bin/sh -c '[ -n "$1" ] && kill -s TERM "$1"' -- "$MAINPID"
Bu satir $1 i kontrol ediyor (-n “$1”) ile ve eger bos degilse kill yapiyor.
MAINPID ise bir systemd degiskeni. Bir servisin ana process ID si.
hmm dedim peki MAINPID her ikisinde de ayni ise kill komutu tüm zabbixleri kill ediyordur bu nedenle benim servis te kill oluyordur.
buna bakmak icin
systemctl show --property MainPID zabbix-agent2
0
dedim ve sifir anlamsizdi hata mi var diye düsündüm ve durumuna baktim
systemctl show --property SubState,ActiveState zabbix-agent2
ActiveState=active
SubState=running
Ama bu durumda sacmaydi ve bende ne olursa olsun kill i önlemek icin zabbix-agent2 yi disable ve stop ettim.
Sonra acaba baska hangi degiskenleri takip edebilirim diye merak ettim ve doküman arastirdim sonuc.
https://www.freedesktop.org/software/systemd/man/latest/systemctl.html#
tüm servis özelliklerini listelemek icin
systemctl show zabbix-agent