HOWTO · Python

Python 프로세스를 종료하는 방법

Ctrl+C, 확인된 프로세스 ID 또는 이름 일치 명령으로 Python 프로세스를 중지하는 방법을 알아봅니다.

이 페이지의 내용

Python 프로그램을 중지하려면 먼저 프로그램이 실행 중인 터미널이나 IDE에서 CTRL+C를 누릅니다. 그래도 포그라운드 프로그램이 중지되지 않으면 해당 프로세스 ID를 확인하고 확인된 프로세스 하나에 kill을 사용합니다. killall이나 pkill은 일치하는 모든 프로세스를 대상으로 삼으려는 경우에만 사용합니다. 이 명령들의 사용 가능 여부와 일치 규칙은 운영 체제에 따라 다릅니다.

키보드 단축키로 Python 프로세스 종료하기

프로그램을 실행 중인 터미널이나 IDE를 클릭하고 CTRL+C를 누릅니다. 이렇게 하면 포그라운드 프로그램에 인터럽트가 전송됩니다. Python은 보통 KeyboardInterrupt를 발생시키며 중지하는 방식으로 응답하지만, 프로그램이 인터럽트를 처리하거나 신속하게 응답하지 않는 코드 안에 있을 수도 있습니다. 프로그램이 파일을 쓰거나 데이터를 업데이트하고 있을 수 있으므로 먼저 작업을 저장하세요.

프로그램이 계속 실행되면 터미널을 사용해 해당 프로세스를 확인하고 아래 명령줄 방법 중 하나를 선택합니다. 프로세스는 종료 신호를 처리하거나 미룰 수도 있습니다. 강제 종료는 별도의 에스컬레이션이며 저장되지 않은 데이터를 잃을 수 있습니다.

프로세스 이름과 kill 명령으로 Python 프로세스 종료하기

kill 명령은 프로세스 이름이 아니라 프로세스 ID(PID)를 대상으로 합니다. Linux에서는 ps -eo pid,comm,args로 프로세스 목록을 검사하고, 명령과 인자를 통해 중지하려는 Python 프로그램을 식별할 수 있는 행을 찾습니다. 오래된 스크린샷에서 PID를 복사하거나 “python"이 포함된 모든 행이 올바른 대상이라고 가정하지 마세요. PID는 재사용될 수 있으므로 신호를 보내기 직전에 후보를 확인하세요.

Bash에서 이 작은 검사는 현재 셸을 알려진 프로세스로 사용하고 그 PID에 도달할 수 있음을 확인합니다.

pid=$$
if kill -0 "$pid" 2>/dev/null; then
    printf 'The selected PID is available.\n'
else
    printf 'The selected PID is unavailable.\n'
fi
The selected PID is available.

검사가 성공적으로 실행되어 위에 표시된 사용 가능 메시지를 출력했습니다. kill -0은 프로세스가 존재하는지와 그 프로세스에 신호를 보낼 수 있는지를 확인합니다. 해당 프로세스가 Python에 속하는지는 확인하지 않습니다. 셸 PID를 직접 확인한 후보로 교체하고, 조치를 취하기 전에 프로세스 목록을 다시 검사하세요.

Unix 계열 시스템에서 kill PID는 기본적으로 SIGTERM을 보내며, 이는 프로세스에 종료를 요청하고 정리할 기회를 줍니다. 예를 들어 PID를 확인된 번호로 교체한 뒤 kill -TERM PID를 사용합니다. 프로세스 목록을 다시 확인해 중지됐는지 봅니다. 여전히 남아 있으면 더 강한 신호를 고려하기 전에 그 이유를 파악하세요. kill -9를 일상적인 첫 단계로 취급하지 마세요.

프로세스 이름과 killall 명령으로 Python 프로세스 종료하기

killall은 이름으로 프로세스를 선택하므로 python 같은 넓은 이름은 중지하려던 스크립트 하나보다 더 많은 대상과 일치할 수 있습니다. 시스템에서 사용할 수 있는 프로세스 목록 도구로 일치 항목을 검토하고 가능하면 이름을 좁히세요. killall python은 해당 로컬 명령과 일치하는 모든 프로세스를 중지하려는 경우에만 실행하세요.

이 명령은 모든 곳에서 사용할 수 있는 것은 아니며, 구현은 Unix 계열 시스템마다 다릅니다. 이름 일치나 신호 옵션을 신뢰하기 전에 로컬 killall 설명서 페이지를 확인하세요. 일부 시스템에서는 프로세스 종료에 흔히 사용되는 Linux 명령과 동작이 다릅니다.

프로세스 이름과 pkill 명령으로 Python 프로세스 종료하기

pkill도 이름으로 프로세스를 선택하며 여러 일치 항목에 신호를 보낼 수 있습니다. 그 패턴과 옵션은 구현에 따라 다릅니다. 먼저 후보 프로세스를 검사하세요. 지원하는 시스템에서는 pgrep -a python으로 일치하는 PID와 명령줄을 표시할 수 있습니다. 목록에 관련 없는 프로그램이 포함되어 있으면 더 구체적인 패턴이나 지원되는 다른 선택자를 선택하세요.

일치 항목이 중지하려는 프로세스와 정확히 같을 때, -f를 지원하는 구현에서는 pkill -TERM -f 'your-specific-script.py'가 전체 명령줄이 해당 패턴과 일치하는 프로세스에 SIGTERM을 보냅니다. 패턴은 선택자로 취급하고 단일 일치를 보장하는 것으로 여기지 마세요. 대상 시스템에서 man pkill을 참고하세요. 확인된 프로세스 하나를 대상으로 삼아야 할 때는 PID와 함께 kill을 사용하세요.

결론

터미널에 연결된 Python 프로그램에는 Ctrl+C를, 특정 프로세스 하나에는 새로 확인한 프로세스 ID와 함께 kill을, 선택한 이름 일치 항목이 모두 의도한 대상일 때만 killall이나 pkill을 사용하세요. 명령의 로컬 문서를 확인하고 결과를 확인하세요. 종료 신호는 프로세스에 중지를 요청하는 것이며, 즉각적인 종료나 프로그램이 저장하지 않은 작업의 보존을 보장하지 않습니다.