SystemdがマスターPIDを正しく生成していないようです。

SystemdがマスターPIDを正しく生成していないようです。

必要に応じて/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を修正して継続的に維持するにはどうすればよいですか?もっと学ぶ。

関連情報