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이 포함되어 있습니다.

한 가지 흥미로운 점은 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를 수정하고 지속적으로 유지하려면 어떻게 해야 하나요?더 알아보기.

관련 정보