systemd는 다시 시작할 때와 서비스를 정상적으로 다시 시작할 때 다른 시간 초과 설정을 갖습니까?

systemd는 다시 시작할 때와 서비스를 정상적으로 다시 시작할 때 다른 시간 초과 설정을 갖습니까?

rsyslogsystemd는 시스템이 재부팅될 때(예: 를 실행하여 ) reboot실행 중인 데몬을 중지하기 위해 다른 시간 초과 설정을 사용합니까 ? 아니면 방금 다시 시작할 때(예: )를 사용합니까 systemctl restart rsyslog?

내가 확인했다시스템 서비스페이지를 찾았는데 찾지 못했습니다. 대신 TimeoutStopSec및 옵션 만 찾았습니다 TimeoutStartSec. 옵션 을 설정했는데 TimeoutStopSec시스템화된 것 같아요가능한상태를 안전하게 저장하고 깔끔하게 종료하기 전에 데몬을 종료합니다..

편집 1:

@sourcejedi가 제안한 대로(감사합니다) 이는 rsyslog를 실행하는 데스크톱 설치가 아니라 rsyslog의 Ubuntu 16.04 서버 설치라는 점을 강조해야 합니다. rsyslog는 클라이언트 노드에서 메시지를 수신하고 메시지 종료를 요청할 때 메모리에 여전히 많은 양을 보유할 수 있습니다. 체계화되었습니다.

이 옵션의 값을 TimeoutStopSec90초에서 240초로 늘려 일부 손상된 디스크 대기열 문제를 해결하려고 노력했지만 여전히 관련 로그 파일에서 이 메시지가 여러 번 관찰되었습니다.

rsyslogd: 큐 'strm 0x26b4800', 파일 '/var/spool/rsyslog/q_ForwardToNode2.00000003' 비추가 쓰기를 위해 열려 있지만 이미 983505바이트가 포함되어 있습니다. [v8.29.0은 http://www.rsyslog.com/e/0을 시도했습니다. ]

아이디어는 시스템이 내용을 디스크에 저장하는 동안 참을성이 없어 rsyslog를 종료할 수 있다는 것입니다.

rsyslog를 시작하기 전에 systemd가 활성 네트워크 연결을 기다리도록 하여 또 다른 문제를 해결하려고 했습니다. Drop-Ins이 항목에 유용한 컨텍스트를 추가하는 경우 참조를 위해 아래에 사용하는 두 systemd의 내용을 포함했습니다 .

cat /etc/systemd/system/rsyslog.service.d/*.conf | grep -Ev '#|^$'

Github #1656을 해결해보세요

[단위]
문서=https://internal/wiki/url/here
이후 = network.target
원하는=network.target

Github #1704를 풀어보세요

[단위]
문서=https://internal/wiki/url/here
[제공하다]
시간 초과 중지 초 = 240

읽어주셔서 감사합니다.

답변1

다시 시작 명령을 실행하면 systemd가 TimeoutStopSec 값을 무시하게 됩니까?

아니요, 그건 끔찍할 것입니다. 그렇지 않습니다.

편집: v233 이상의 일부 시스템 버전 JobTimeoutSec=30minreboot.target.

편집: "시스템이 디스크에 항목을 저장하는 동안 참을성이 없어져 rsyslog를 종료할 수 있다는 아이디어입니다."와 관련하여 해당 메시지는 rsyslog의 버그인 것 같습니다.

큐 버그 수정: 잘못된 파일 쓰기 오류 메시지 #1759 #1759

대기열이 디스크 파일에서 다시 시작되면 거의 항상 "비추가 쓰기를 위해 파일이 열렸지만 이미 xxx 바이트가 포함되어 있습니다"라는 메시지가 표시됩니다. 이 메시지는 오류이며 실제 오류 조건을 나타내지는 않습니다. 잘못된 조건자 확인입니다.


Debian 9의 서비스 파일을 보면 syslog.socket(systemd에서 제공) 가 있지만 및DefaultDependencies=no . 후자의 줄은 주석 처리되어 있습니다 . 마지막 두 개가 없다면Before=shutdown.targetConflicts=shutdown.targetDon't allow logging until the very end그리고rsyslog.service 예, syslog 데몬은 DefaultDependencies=no( )에 의해 즉시 다시 활성화되고 종료될 수 있습니다. SIGTERM과 SIGKILL 사이에 내장된 기본 시간 제한을 사용하세요. 제 생각에는 90초입니다.systemd-shutdown.servicesystemd-shutdownsystemd-shutdown

관련 정보