이름과 ID 를 이용한 프로세스 종료

LinuxBeginner
지금 연습하기

소개

이 챌린지에서는 다양한 명령어를 사용하여 리눅스에서 프로세스를 종료하는 방법을 배웁니다. 프로세스 관리는 실행 중인 애플리케이션과 서비스를 효율적으로 제어할 수 있게 해주므로, 리눅스 관리자나 사용자에게 있어 매우 중요한 기본 역량입니다.

학습 목표

  • kill - 프로세스에 신호 전달
  • killall - 이름을 기준으로 모든 프로세스 종료
  • pkill - 이름을 기준으로 모든 프로세스 종료

프로세스에 신호 전달하기

리눅스에서 실행되는 모든 프로그램이나 서비스는 고유한 프로세스 ID(PID) 를 가진 프로세스로 표현됩니다. kill 명령어를 사용하면 프로세스에 신호를 보낼 수 있으며, 가장 흔히 사용되는 신호는 프로세스를 종료하는 신호입니다.

현재 로그 파일에 지속적으로 내용을 기록하는 백그라운드 스크립트 프로세스가 실행 중입니다. 이제 kill 명령어를 사용하여 이 프로세스를 종료하는 신호를 보내야 합니다.

요구 사항

  • 백그라운드 스크립트 (/tmp/background-process.sh) 의 프로세스 ID 를 찾으세요.
  • 해당 프로세스를 종료하기 위한 신호를 보내세요.
  • 프로세스 종료 시 반드시 kill 명령어만 사용해야 합니다.

힌트

  • 프로세스의 PID 를 찾으려면 ps aux | grep [process-name] 명령어를 사용하세요.
  • -9 신호 (SIGKILL) 는 프로세스를 즉시 강제 종료합니다.
  • 일부 작업은 루트 권한 (sudo) 이 필요할 수 있음을 유의하세요.

모든 프로세스 일괄 종료하기

kill 명령어는 PID 를 통해 개별 프로세스를 종료하는 데 강력한 도구이지만, 동일한 이름을 가진 여러 프로세스를 한꺼번에 종료해야 할 때는 더 편리한 명령어가 있습니다.

killallpkill 명령어를 사용하면 각 프로세스의 PID 를 일일이 찾아볼 필요 없이 프로세스 이름만으로 종료할 수 있습니다. 이는 동일한 프로그램의 인스턴스가 여러 개 실행 중일 때 특히 유용합니다.

이번 단계에서는 이 명령어들을 연습하기 위해 이전에 실행해 둔 nginx 웹 서버의 모든 프로세스를 종료해 보겠습니다.

요구 사항

  • 모든 nginx 프로세스를 종료하세요.
  • killall 또는 pkill 명령어를 사용하여 모든 nginx 프로세스를 한 번에 종료해야 합니다.

힌트

  • killall은 프로세스 이름이 정확히 일치해야 합니다.
  • pkill은 좀 더 유연한 패턴 매칭을 지원합니다.
  • 시스템 프로세스를 다룰 때는 두 명령어 모두 루트 권한 (sudo) 이 필요할 수 있습니다.

요약

축하합니다! 챌린지를 성공적으로 마쳤습니다.

이번 챌린지를 통해 다음과 같은 핵심적인 리눅스 프로세스 관리 기술을 습득했습니다:

  1. ps 명령어를 사용하여 실행 중인 프로세스를 식별하는 방법
  2. kill 명령어를 사용하여 특정 PID 를 가진 프로세스를 종료하는 방법
  3. killall 또는 pkill을 사용하여 이름으로 여러 프로세스를 일괄 종료하는 방법

이 명령어들은 리눅스 관리자의 도구 상자에서 가장 기본이 되는 도구들로, 실행 중인 프로세스를 효과적으로 관리하고 제어할 수 있게 해줍니다. 오작동하는 애플리케이션을 중지하거나 서비스를 재시작해야 할 때, 이 명령어들을 통해 시스템 프로세스를 정밀하게 제어할 수 있습니다.

계속해서 즐겁게 학습하시기 바랍니다!

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습