쉘 명령을 실행할 수 있는 소프트웨어에 대한 스트레스 테스트를 수행하고 있습니다. 스트레스 테스트 도중 시스템에서 주기적으로 로그아웃되었습니다. 이 문제를 유발하는 명령을 기록하면 항상 자체적으로 잘 실행되고 로그아웃되지 않는 명령이 생성됩니다.
예상치 못한 로그아웃이 발생한 원인을 어떻게 알 수 있나요?
댓글에 대한 편집자의 답변:
사용: 우분투 12.04, x64. 쉘 명령은 대규모 명령 세트의 조합이지만 프로세스를 직접 중지하는 kill 또는 기타 방법은 포함하지 않습니다. 충돌을 일으키는 명령 시퀀스의 예:
cd /tmp
pwd
dmesg
date -u
*some internal program calls happen here*
*logout happens here*
내 생각에는 이것이 내 프로그램 내부에 있는 것으로 추측되므로 완전성을 위해 쉘 명령을 언급하겠습니다. 로그 파일에 파이프된 valgrind를 사용하여 실행하면 로그아웃 중에 프로세스를 정상적으로 중지할 때 발생하는 것과 유사한 깔끔한 종료가 표시됩니다. 메모리 누수나 잘못된 액세스 문제가 전혀 없습니다. 무슨 일이 일어나고 있는지 파악하기가 어렵습니다!
Edit2: 시스템 로그를 검색한 후 자세한 내용을 확인하세요. 내가 가진 것은 이것뿐입니다.
Oct 1 14:39:26 my_hostname pulseaudio[7519]: [pulseaudio] pid.c: Daemon already running.
Oct 1 14:39:37 my_hostname kernel: [499969.564820] init: tty4 main process (1031) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.565018] init: tty5 main process (1037) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.565201] init: tty2 main process (1052) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.565391] init: tty3 main process (1053) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.565595] init: tty6 main process (1055) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.565798] init: cron main process (1065) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.566014] init: irqbalance main process (1120) killed by TERM signal
Oct 1 14:39:37 my_hostname kernel: [499969.566233] init: tty1 main process (1391) killed by TERM signal
Oct 1 14:39:38 my_hostname kernel: [499969.875817] init: plymouth-upstart-bridge main process (7542) terminated with status 1
그런 다음 14:38:37에 거대한 커널 메시지 덤프처럼 보이는 것이 있고 로그인하기 전에 시스템이 자체적으로 재설정되는 것처럼 보입니다.
답변1
어떤 종류의 스트레스 테스트를 하느냐에 따라 다릅니다. 커널에 계속할 수 있는 리소스가 충분하지 않으면 임의 프로세스가 종료됩니다. 이는 페이지 파일이 없고 일부 프로세스에 모든 메모리가 사용되는 경우와 같이 부하가 매우 높은 경우에만 발생합니다.