Linux 시스템 종료 중 “Stop 작업이 실행 중입니다” 오류 해결 방법

Linux 시스템 종료 중 “Stop 작업이 실행 중입니다” 오류 해결 방법

리눅스 배포판 종료 시 “정지 작업이 실행 중입니다”라는 메시지가 표시되나요? 이러한 현상을 겪는 사용자는 많습니다.이 알림은 시스템 종료 프로세스를 최대 90초까지 일시 중단시켜 많은 사용자를 당황하게 만듭니다.

안전 기능 이해하기

무엇보다 먼저, “중지 작업이 실행 중입니다”라는 메시지는 시스템 오류가 아니라 내장된 안전 기능이라는 점을 인식하는 것이 중요합니다.

우분투, 페도라, 아치와 같은 리눅스 배포판은 시스템d를 사용하여 시작 및 종료 시퀀스를 관리합니다.시스템 종료를 시작하면 시스템d는 전원을 갑자기 차단하는 대신 모든 활성 서비스와 애플리케이션에 SIGTERM 이라는 신호를 보냅니다.이상적인 시나리오에서는 각 프로그램이 이 신호를 수신하여 데이터를 저장하고 파일을 제대로 닫을 수 있습니다.

하지만 일부 서비스는 프로세스를 완료하는 데 추가 시간이 필요할 수 있으며 신호에 즉시 응답하지 않을 수 있습니다.이러한 지연으로 인해 경고 메시지가 표시됩니다.일반적인 원인은 다음과 같습니다.

  • 네트워크 관리자
  • 컨테이너 서비스
  • 사용자 세션
  • 네트워크 마운트 드라이브

많은 사용자는 “작업 중지 중” 메시지를 시스템 오류의 징후로 여기지만, 이는 systemd 개발자들이 의도적으로 설계한 동작입니다.기본적으로 90초의 대기 시간은 서비스가 남은 작업을 완료할 수 있도록 하기 위한 것입니다.이 시간 내에 작업이 완료되지 않으면 systemd는 SIGKILL 신호를 사용하여 해당 서비스를 강제로 종료 하고 시스템 종료를 진행합니다.

이러한 제어된 종료는 애플리케이션이 파일 닫기부터 데이터베이스 트랜잭션 완료, 파일 시스템의 깔끔한 마운트 해제에 이르기까지 모든 작업을 완료할 수 있도록 보장합니다.대기 시간을 단축하고 종료 속도를 높이는 것도 가능하지만, 데이터 손실이나 손상의 위험이 발생하여 파일 시스템의 안정성이 저하될 수 있습니다.

기본 시간 제한 조정

표준 90초 타임아웃은 대부분의 서비스 정리 요구 사항을 충족하므로 구형 하드웨어를 사용하는 사용자에게는 적합한 경우가 많습니다.그러나 최신 시스템을 사용하는 사용자에게는 이 시간이 지나치게 길게 느껴질 수 있습니다.

다행히 시스템 구성을 수정하여 타임아웃 시간을 줄이면 종료 프로세스 속도를 높일 수 있습니다.대기 중인 서비스에 대해 정확한 시간 제한을 지정할 수도 있습니다.

먼저 터미널을 열고 원하는 텍스트 편집기를 사용하여 시스템 구성 파일을 수정하십시오.

sudo nano /etc/systemd/system.conf

파일을 열었으면 타임아웃 변수를 찾으세요.다양한 전역 설정이 보일 겁니다.라고 표시된 줄을 찾으세요 #DefaultTimeoutStopSec=90s.해시 기호(#)가 있으면 해당 줄이 주석 처리되어 있다는 뜻이며, 시스템이 기본 설정인 90초를 따르고 있다는 의미입니다.

이 설정을 변경하려면 해시 기호를 제거하고 원하는 기간으로 값을 수정하세요.

중요: 이 값을 0으로 설정하면 무기한 타임아웃이 발생하여 시스템이 프로세스 종료를 기다리는 동안 무한정 멈춰 있게 됩니다.일반적으로 20~30초 범위가 적절한 절충안입니다.

변경 사항을 완료했으면 저장하고 편집기를 종료하십시오.일반적으로 이러한 변경 사항을 적용하려면 컴퓨터를 재부팅해야 합니다.재부팅 후에도 대기 시간이 길어질 수 있지만, 이후 부팅 시에는 새로운 시간 초과 설정이 반영됩니다.

타임아웃이 문제 발생을 알리는 경우

일반적으로 종료 작업 시간 초과는 예상되는 동작입니다.그러나 지속적인 지연, 특히 동일한 서비스의 종료 시간이 지속적으로 길어지는 경우에는 근본적인 문제가 있을 수 있습니다.가능한 원인으로는 연결할 수 없는 네트워크 마운트, 잘못 구성된 데몬 또는 서비스가 종료 신호에 응답하지 않는 경우 등이 있습니다.

시스템 종료 과정이 평소보다 훨씬 오래 걸리는 경우(예: 몇 초가 아닌 몇 분씩 소요되는 경우)에는 이상 현상을 조사하는 것이 좋습니다.간헐적인 지연은 대개 큰 문제가 되지 않지만, 빈번하게 발생하는 지연은 주의가 필요할 수 있습니다.

속도 저하의 원인이 되는 서비스를 파악하려면 장시간 종료 후 재부팅하여 로그를 검토하십시오.

journalctl -b -1 -e

이 명령은 이전 부팅 시의 로그를 가져와서 맨 끝으로 이동합니다.스크롤하여 강제로 중지된 서비스와 관련된 경고 또는 시간 초과 메시지를 찾을 수 있습니다.

검색 범위를 좁히려면 다음 필터를 사용하여 경고 수준 메시지를 검색할 수 있습니다.

journalctl -b -1 -p warning

또한 다음 systemd 명령어를 사용할 수도 있습니다.

systemd-analyze blame

이 명령은 일반적으로 부팅 시간에 초점을 맞추지만, 시작 시 속도가 느린 서비스는 종료 시에도 유사한 동작을 보이는 경우가 많습니다.”작업 중지” 알림을 발생시킬 수 있는 일반적인 서비스는 다음과 같습니다.

  • 네트워크 서비스
  • NFS 또는 SMB와 같은 원격 파일 시스템
  • 데이터베이스 서버
  • 가상 머신 및 컨테이너 관리자
  • 외장 드라이브 및 자동 마운트 서비스

네트워크 기반 마운트에 의존하는 서비스는 연결이 끊어질 경우 특히 지연에 취약합니다.종료 시간 제한을 줄이면 종료 속도는 빨라질 수 있지만, 지연을 유발하는 서비스 문제를 해결하는 것은 아닙니다.근본적인 원인을 해결하는 것이 보다 지속 가능한 해결책입니다.

결론

리눅스는 사용자에게 시스템에 대한 상당한 제어 권한을 제공하며, 여기에는 특정 서비스의 종료 시간을 관리하는 기능도 포함됩니다.백그라운드 애플리케이션을 최적화하고 불필요한 서비스를 비활성화함으로써 종료 및 부팅 효율성을 모두 향상시킬 수 있습니다.

출처 및 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다