종료 시간이 너무 오래 걸리나요? 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

잊지 마라. DefaultTimeoutStopSec 전에 # 제거. 파일을 저장하고 시스템을 재부팅하십시오.
이는 Linux 시스템의 종료 지연을 줄이는 데 도움이됩니다.
워치 독 문제!
Linux에는 특정 서비스가 실행 중인지 여부를 모니터링하는 데 사용되는 watchdog이라는 모듈이 있습니다. 소프트웨어 오류로 인해 시스템이 중단 된 경우 시스템을 자동으로 재부팅하도록 구성 할 수 있습니다.
시스템을 수동으로 종료하거나 재부팅 할 수 있기 때문에 데스크탑 시스템에서 Watchdog을 사용하는 것은 드문 경우입니다. 원격 서버에서 자주 사용됩니다.
먼저 워치 독이 실행 중인지 확인합니다.
ps -af | grep watch*
워치 독이 시스템에서 실행중인 경우 ShutdownWatchdogSec 값을 10 분에서 systemd 구성 파일 /etc/systemd/system.conf에서 더 낮은 값으로 변경할 수 있습니다.
Linux 시스템을 부팅하는 데 걸리는 시간 확인
Linux 시스템을 부팅하는 데 얼마나 걸립니까? systemd-analyze 명령으로이를 찾는 방법은 다음과 같습니다.
긴 종료 문제를 해결할 수 있었습니까?