systemd - ArchWiki
CentOS7なサーバにZabbix-agentdを入れているのですが、どうにもinitスクリプトでは動作しなかったので、何とかsystemdスクリプトを作成してみました。
参考にさせていただいたのは@zembutsuさんのスクリプトです。
そのまま流用できるかと思ったのですが、とりあえず自分の環境では動作しなかったので、さらに改造してみることにしました。
参考にさせていただいたのは以下の内容のスクリプトです。
[Unit] Description=Zabbix Monitor Agent After=syslog.target network.target [Service] Type=oneshot ExecStart=/opt/zabbix/sbin/zabbix_agentd RemainAfterExit=yes User=zabbix [Install] WantedBy=multi-user.target
うちの環境用に書き換えます。
[Unit] Description=Zabbix Monitor Agent After=syslog.target network.target [Service] -Type=oneshot +Type=forking -ExecStart=/opt/zabbix/sbin/zabbix_agentd +ExecStart=/usr/sbin/zabbix_agentd -RemainAfterExit=yes +PIDFile=/var/run/zabbix/zabbix_agentd.pid User=zabbix [Install] WantedBy=multi-user.target
これでsystemctlから起動して状態を確認します。
# systemctl --system daemon-reload
# systemctl start zabbix-agent.service
# systemctl status zabbix-agentd.service
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/etc/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-08-17 09:56:15 JST; 1 weeks 1 days ago
Main PID: 932 (zabbix_agentd)
Tasks: 6 (limit: 4776)
CGroup: /system.slice/zabbix-agent.service
├─932 /usr/sbin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf
├─939 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─940 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─941 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─942 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─943 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
ということで無事に起動できるようになりました。

