slapd
때때로 아무 이유 없이 중지되는 데몬 프로세스( )가 있습니다 . 세그폴트가 발생하지 않습니다. 로그에는 특별한 내용이 없습니다.
그래서 제가 사용하려는 것은 acct
프로세스의 수명주기, 특히 종료 값을 추적하는 것입니다. man
커널이 값을 기록했음을 나타냅니다 . 놀랍게도 내 dump-acct
정보는 표시되지 않습니다 ...
print_pacct_record()
함수에 다음 줄을 추가하여 소스를 변경 해야 했습니다 .
(void)fprintf(out, "%4u|", rec->ac_exitcode >> 8);
편집: 이 변경 사항은최근 추가된 주류.
하지만 이것만으로는 문제를 찾기에는 부족하다고 생각합니다.
프로그램 종료 방법을 추적하는 더 좋은 방법이 있습니까?예를 들어 스택 추적이 흥미로울 것입니다. "마지막 순간 추적"이 더 좋을 것입니다.
strace
나는 둘 중 하나를 생각했지만 ltrace
프로그램은 "자체 중지"되기 전에 며칠 동안 실행될 수 있습니다. 성능에 영향을 미치는 "추적"이 걱정됩니다. 제가 도움을 드릴 수 있을지 모르겠습니다 gdb
.
답변1
strace
해당 옵션을 사용하고 출력을 파일로 리디렉션하면 어떻게 되나요 -o
?
[root@host ~]# strace -o /root/slapd_strace.log slapd --parameters --you --want
답변2
strace
또는 아래에서 screen
실행 해 보십시오 tmux
. 실행한 후에는 연결을 끊고 필요할 때만 다시 연결할 수 있습니다. 페이지 상단으로 스크롤되는 중요한 단서에 대해 걱정할 필요조차 없도록 screen
스크롤 버퍼를 유지하십시오(아마도 그럴 것입니다 ).tmux
screen -h 1000
strace ...
# disconnect with Ctrl-a d
~ 후에
screen -r