必要に応じて/lib/systemd/system/snmpd.serviceファイルを修正しました。以下は、私が変更したsnmpd.serviceファイルの内容です。
[Unit]
Description=Simple Network Management Protocol (SNMP) Daemon.
After=network.target
ConditionPathExists=/etc/snmp/snmpd.conf
[Service]
Type=notify
RuntimeDirectory=agentx
ExecStart=/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
daemon-reload の後、「systemctl start snmpd」コマンドを入力します。次のエラーが発生します。
× snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: failed (Result: protocol) since Thu 2023-03-16 11:39:21 KST; 12min ago
Process: 3046725 ExecStart=/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid (code=exited, status=0/SUCCESS)
Main PID: 3046725 (code=exited, status=0/SUCCESS)
CPU: 48ms
Mar 16 11:39:21 esm-dev systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Mar 16 11:39:21 esm-dev snmpd[3046725]: Turning on AgentX master support.
Mar 16 11:39:21 esm-dev snmpd[3046727]: NET-SNMP version 5.9.1
Mar 16 11:39:21 esm-dev systemd[1]: snmpd.service: Got notification message from PID 3046727, but reception only permitted for main PID which is currently not known
Mar 16 11:39:21 esm-dev snmpd[3046727]: Received TERM or STOP signal... shutting down...
Mar 16 11:39:21 esm-dev systemd[1]: snmpd.service: Failed with result 'protocol'.
Mar 16 11:39:21 esm-dev systemd[1]: Failed to start Simple Network Management Protocol (SNMP) Daemon..
エラーメッセージによると、メインPIDと通知メッセージを送信するPIDが異なるようです。
マスターPID:3046725
PID 3046727から通知メッセージを受信しました。
...
/run/snmpd.pid ファイルには 3046727 が含まれています。
1つの興味深いことは、MainPIDと通知メッセージが送信されるPIDの違いは常に2であることです。
systemctl start snmpd を再入力すると、
× snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: failed (Result: protocol) since Thu 2023-03-16 11:58:30 KST; 2s ago
Process: 3047690 ExecStart=/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid (code=exited, status=0/SUCCESS)
Main PID: 3047690 (code=exited, status=0/SUCCESS)
CPU: 41ms
Mar 16 11:58:30 esm-dev systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Mar 16 11:58:30 esm-dev snmpd[3047690]: Turning on AgentX master support.
Mar 16 11:58:30 esm-dev snmpd[3047692]: NET-SNMP version 5.9.1
Mar 16 11:58:30 esm-dev snmpd[3047692]: Received TERM or STOP signal... shutting down...
Mar 16 11:58:30 esm-dev systemd[1]: snmpd.service: Got notification message from PID 3047692, but reception only permitted for main PID which is currently not known
Mar 16 11:58:30 esm-dev systemd[1]: snmpd.service: Failed with result 'protocol'.
Mar 16 11:58:30 esm-dev systemd[1]: Failed to start Simple Network Management Protocol (SNMP) Daemon..
マスターPID:3047690
PID 3047692から通知メッセージを受信しました。
MainPIDとPIDの通知メッセージが異なる理由を知りたいです。 systemctlを使ってsnmpdを正常に実行する方法を知りたいです。
誰でも私を助けることができますか?
答え1
-f
コマンドラインからフラグを削除しました。snmpd
フラグは次を示します。snmpd
いいえフォーク。サービスが正常に機能するには、このフラグを復元する必要があります。
ちなみに、修正しないで上書きに/lib/systemd/system/snmpd.service
変更する必要があります。
sudo systemctl edit snmpd
バラより.serviceを修正して継続的に維持するにはどうすればよいですか?もっと学ぶ。