필요에 따라 /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를 수정하고 지속적으로 유지하려면 어떻게 해야 하나요?더 알아보기.