systemd를 사용하여 서비스를 만드는 방법을 배우고 있습니다. 다음 오류가 발생합니다.
.service: Start request repeated too quickly.
더 이상 서비스를 시작할 수 없습니다. 어제도 계속 작동 중이었습니다. 내가 뭘 잘못했나요?
(root@Kundrum)-(11:03:19)-(~)
$nano /lib/systemd/system/swatchWATCH.service
1 [Unit]
2 Description=Monitor Logfiles and send Mail reports
3 After=syslog.target network.target
4
5 [Service]
6 Type=simple
7 ExecStart=/usr/bin/swatch --config-file=/home/kristjan/.swatchrc --input-record-separator="\n \n " --tail-file=/var/log/snort/alert --daemon
8 Restart=on-failure
9 StartLimitInterval=3
10 StartLimitBurst=100
11
12 [Install]
13 WantedBy=multi-user.target
StartLimitInterval
StartLimitBurst
수정하려고 노력한 후에 추가했습니다 .
내 시스템은 Debian 9.8 Stretch all 업데이트입니다.
답변1
먼저, 커스텀 서비스라면 패키지에서 제공하는 파일 /etc/systemd/system
에 속합니다./lib/systemd
둘째, 서비스가 충돌할 수 있으며 systemd는 서비스를 반복적으로 다시 시작하려고 시도하므로 충돌한 이유를 알아내야 합니다. 서비스 로그를 확인하십시오.
journalctl -e -u swatchWATCH
주요 문제에는 몇 가지 추가 세부정보가 있을 수 있습니다.
journalctl -e
마지막으로 CLI에서 직접 실행할 수 있는지 확인하세요.
/usr/bin/swatch --config-file=/home/kristjan/.swatchrc --input-record-separator="\n \n " --tail-file=/var/log/snort/alert --daemon
옵션 을 사용하고 계시네요 --daemon
. 이는 일반적으로 시스템 버그입니다. Systemd는 사용자를 위해 데몬화를 수행합니다. 이 옵션을 제거해 보세요.
모든 방법이 실패하면 어제 일을 시작한 이후로 무엇이 바뀌었는지 되돌아보세요.
답변2
"systemd[1]: SERVICE: 시작 요청이 너무 빨리 반복됨"에 대한 빠른 해결책은 다음과 같습니다.
systemctl reset-failed SERVICE
systemctl start SERVICE
systemctl status SERVICE
관련 인용문은 다음에서 제공됩니다.수동 시스템 제어:
재설정 실패 [모드...]
...속도 제한 카운터를 0으로 재설정하기 시작합니다. 따라서 장치의 시작 제한(구성된 대로
StartLimitIntervalSec=/StartLimitBurst=
)에 도달하고 장치가 다시 시작을 거부하는 경우 이 명령을 사용하여 다시 시작할 수 있도록 하십시오. "
답변3
내 경우에는 오류 메시지가 약간 오해의 소지가 있습니다. 실패 이유는 머신 간 복제 때문입니다. 선
User=my_user
내 서비스 구성 파일이 /etc/systemd/system/infinite_script.service
범인이었습니다.
새 시스템은 이 사용자를 인식하지 못합니다. 변경하면 User=root
문제가 해결되었습니다.