본문 바로가기

카테고리 없음

종료 시간이 너무 오래 걸리나요? Linux에서 긴 종료 시간을 조사하고 수정하는 방법

종료 시간이 너무 오래 걸리나요? Linux에서 긴 종료 시간을 조사하고 수정하는 방법

Linux 시스템을 종료하는 데 너무 오래 걸리나요? 지연된 종료의 원인을 찾고 문제를 해결하기 위해 취할 수있는 단계는 다음과 같습니다.

나는 당신이 약간 익숙한 sigterm 및 sigkill 개념.

. Linux 시스템 종료, sigterm을 보내고 실행중인 프로세스를 중지하도록 정중하게 요청합니다. 일부 프로세스는 오작동하고 sigterm을 무시하고 계속 실행됩니다.

이로 인해 시스템이 사전 정의 된 시간 동안 실행중인 프로세스가 중지 될 때까지 대기하므로 종료 프로세스가 지연 될 수 있습니다. 이 시간이 지나면 실행중인 나머지 프로세스를 모두 강제 중지하고 시스템을 종료하기 위해 kill 신호를 보냅니다. 나는 추천한다 차이를 이해하기 위해 sigterm 대 sigkill에 대해 읽기.

실제로 어떤 경우에는 검은 색 화면에 '작업 중지가 실행 중입니다'와 같은 메시지가 표시됩니다.

시스템을 종료하는 데 너무 오래 걸리는 경우 다음을 수행 할 수 있습니다.

  • 너무 오래 걸리는 프로세스 / 서비스를 확인하고 올바르게 작동하도록 제거하거나 재구성 할 수 있는지 확인하십시오.
  • 시스템이 실행중인 프로세스를 강제로 중지하기 전에 기본 대기 기간을 변경하십시오. [빠르고 더러운 수정]

여기에서 Ubuntu를 사용하고 있습니다. 시스템. 여기에있는 명령과 단계는 systemd를 사용하는 모든 Linux 배포판에서 유효합니다 (대부분은 그렇습니다).

Linux에서 긴 종료를 일으키는 프로세스 확인

무엇이 잘못되었는지 파악하려면 마지막 종료시 발생한 문제를 확인해야합니다. 이 명령을 사용하여 '당신이 마지막 세션을 수행 한 것을 알고 있습니다'(의도 한 말장난)의 힘을 얻으십시오.

journalctl -rb -1

journalctl 명령 시스템 로그를 읽을 수 있습니다. '-b -1'옵션을 사용하면 마지막 부팅 세션에 대한 로그를 필터링 할 수 있습니다. '-r'옵션을 사용하면 로그가 시간 역순으로 표시됩니다.

즉, 'journalctl -rb -1'명령은 Linux 시스템이 마지막으로 종료되기 직전에 시스템 로그를 표시합니다. 이것은 Linux에서 장기 종료 문제를 분석하는 데 필요한 것입니다.

저널 로그가 없습니까? 수행해야 할 작업은 다음과 같습니다.

저널 로그가없는 경우 배포에서 systemd를 사용하는지 확인하십시오.

systemd가있는 일부 Linux 배포판에서도 저널 로그는 기본적으로 활성화되지 않습니다.

/ var / log / journal이 있는지 확인하십시오. 그렇지 않은 경우 만듭니다.

sudo mkdir /var/log/journal

또한 /etc/systemd/journald.conf 파일의 내용을 확인하고 Storage 값이 auto 또는 지속적으로 설정되어 있는지 확인해야합니다.

로그에서 의심스러운 것을 찾았습니까? 중지를 거부하는 프로세스 / 서비스가 있습니까? 그렇다면 부작용없이 제거 할 수 있는지 또는 재구성 할 수 있는지 조사하십시오. 여기서 맹목적으로 물건을 치우지 마십시오. 프로세스에 대한 지식이 있어야합니다.

기본 중지 시간 제한을 줄여 Linux에서 종료 속도를 높입니다. [빠른 수정]

종료를위한 기본 대기 시간은 일반적으로 90 초로 설정됩니다. 시스템은이 시간이 지나면 서비스를 강제 중지하려고합니다.

Linux 시스템을 빠르게 종료하려면이 대기 기간을 변경할 수 있습니다.

/etc/systemd/system.conf에있는 구성 파일에서 모든 systemd 설정을 찾을 수 있습니다. 이 파일은 #로 시작하는 많은 줄로 채워 져야합니다. 파일에있는 항목의 기본값을 나타냅니다.

어떤 작업을하기 전에 원본 파일의 복사본을 만드는 것이 좋습니다.

sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.orig

여기에서 DefaultTimeoutStopSec을 찾으십시오. 아마도 90 초로 설정되어야합니다.

#DefaultTimeoutStopSec=90s

이 값을 5 초 또는 10 초와 같이 더 편리한 값으로 변경해야합니다.

DefaultTimeoutStopSec=5s

터미널에서 구성 파일을 편집하는 방법을 모르는 경우이 명령을 사용하여 시스템의 기본 텍스트 편집기 (예 : Gedit)에서 편집 할 파일을 엽니 다.

sudo xdg-open /etc/systemd/system.conf
종료 시간 설정 변경 Ubuntu

잊지 마라. DefaultTimeoutStopSec 전에 # 제거. 파일을 저장하고 시스템을 재부팅하십시오.

이는 Linux 시스템의 종료 지연을 줄이는 데 도움이됩니다.

워치 독 문제!

Linux에는 특정 서비스가 실행 중인지 여부를 모니터링하는 데 사용되는 watchdog이라는 모듈이 있습니다. 소프트웨어 오류로 인해 시스템이 중단 된 경우 시스템을 자동으로 재부팅하도록 구성 할 수 있습니다.

시스템을 수동으로 종료하거나 재부팅 할 수 있기 때문에 데스크탑 시스템에서 Watchdog을 사용하는 것은 드문 경우입니다. 원격 서버에서 자주 사용됩니다.

먼저 워치 독이 실행 중인지 확인합니다.

ps -af | grep watch*

워치 독이 시스템에서 실행중인 경우 ShutdownWatchdogSec 값을 10 분에서 systemd 구성 파일 /etc/systemd/system.conf에서 더 낮은 값으로 변경할 수 있습니다.

Linux 시스템을 부팅하는 데 걸리는 시간 확인

Linux 시스템을 부팅하는 데 얼마나 걸립니까? systemd-analyze 명령으로이를 찾는 방법은 다음과 같습니다.

긴 종료 문제를 해결할 수 있었습니까?