728x90
반응형
Linux에서 프로세스는 시스템 자원을 효율적으로 관리하고 작업을 수행하기 위해 필수적인 요소입니다. 이번 포스팅에서는 프로세스를 관리하고 종료하는 데 유용한 kill
, ps
, 그리고 top
명령어를 소개하겠습니다. 또한 각 명령어의 사용 예제와 함께 실습할 수 있도록 간단한 스크립트를 제공합니다.
1. 프로세스 확인 (ps
명령어)
ps
명령어는 현재 실행 중인 프로세스를 확인하는 데 사용됩니다. ps
명령어는 다양한 옵션을 제공하여 원하는 프로세스 정보를 필터링하거나 형식을 지정할 수 있습니다.
주요 옵션
ps
: 기본적으로 현재 쉘에서 실행 중인 프로세스 표시ps -e
: 시스템에서 실행 중인 모든 프로세스 표시ps -f
: 프로세스를 포맷된 형태로 상세히 표시ps aux
: 모든 사용자와 관련된 모든 프로세스 상세히 표시
사용 예제
# 현재 쉘에서 실행 중인 프로세스
ps
# 모든 프로세스 확인
ps -e
# 포맷된 출력 확인
ps -ef
# 특정 사용자(user)의 프로세스 확인
ps -u username
# 특정 프로세스를 이름으로 검색
ps aux | grep process_name
2. 실시간 프로세스 관리 (top
명령어)
top
명령어는 실시간으로 시스템에서 실행 중인 프로세스와 자원 사용 상태를 모니터링하는 데 사용됩니다.
주요 기능
- CPU, 메모리, 스왑 사용량 실시간 모니터링
- 특정 프로세스에 우선순위 변경 또는 종료
- 키보드 단축키로 동작 제어
주요 단축키
q
:top
종료k
: 프로세스 종료 (PID 입력 필요)r
: 프로세스 우선순위 변경 (PID 입력 필요)h
: 도움말 표시s
: 업데이트 주기 변경
사용 예제
# top 실행
$ top
# h 키를 눌러 명령어 도움말 확인
top
명령어는 시스템 자원 관리에 매우 유용하며, 특정 프로세스의 비정상적인 동작을 탐지할 때 특히 유용합니다.
3. 프로세스 종료 (kill
명령어)
kill
명령어는 특정 프로세스를 종료하거나 제어 신호를 보낼 때 사용됩니다. 종료하려는 프로세스의 PID를 알아야 하며, 이를 위해 ps
또는 top
을 활용합니다.
주요 옵션
kill [PID]
: 프로세스를 종료 (기본적으로SIGTERM
신호)kill -9 [PID]
: 강제 종료 (SIGKILL
신호)kill -s [SIGNAL] [PID]
: 특정 신호 전달
주요 신호
SIGTERM (15)
: 프로세스 종료 요청 (기본 신호)SIGKILL (9)
: 프로세스 강제 종료SIGHUP (1)
: 프로세스 재시작SIGSTOP (19)
: 프로세스 일시 중단SIGCONT (18)
: 일시 중단된 프로세스 재개
사용 예제
# PID가 1234인 프로세스 종료
kill 1234
# 강제로 종료 (SIGKILL)
kill -9 1234
# 프로세스 재시작
kill -1 1234
# 특정 이름의 프로세스를 종료하는 예제
ps aux | grep process_name | awk '{print $2}' | xargs kill
4. Bash 스크립트 예제: 프로세스 관리
다음은 프로세스의 상태를 확인하고 종료하는 간단한 Bash 스크립트입니다.
스크립트 내용
#!/bin/bash
# 사용법 출력
if [ "$#" -lt 2 ]; then
echo "Usage: $0 <process_name> <signal>"
echo "Example: $0 my_process SIGKILL"
exit 1
fi
PROCESS_NAME=$1
SIGNAL=$2
# 프로세스 찾기
PID=$(ps aux | grep "$PROCESS_NAME" | grep -v grep | awk '{print $2}')
if [ -z "$PID" ]; then
echo "Process '$PROCESS_NAME' not found."
exit 1
fi
# 프로세스 종료
kill -s "$SIGNAL" "$PID"
if [ $? -eq 0 ]; then
echo "Process '$PROCESS_NAME' (PID: $PID) terminated with signal $SIGNAL."
else
echo "Failed to terminate process '$PROCESS_NAME'."
fi
실행 방법
스크립트를 저장합니다 (예:
process_manager.sh
).실행 권한을 부여합니다:
chmod +x process_manager.sh
스크립트를 실행합니다:
./process_manager.sh <process_name> <signal>
예:
./process_manager.sh my_process SIGKILL
5. 결론
이번 포스팅에서는 Linux에서 프로세스를 확인, 제어, 종료하는 데 유용한 명령어 ps
, top
, kill
을 알아보았습니다. 또한 Bash 스크립트를 활용하여 프로세스를 관리하는 방법도 살펴보았습니다. 이를 활용하면 시스템 관리와 문제 해결이 더욱 효율적이고 체계적으로 이루어질 것입니다.
반응형
'Linux Bash shell script' 카테고리의 다른 글
Bash Shell Script 파이프라인(Pipeline)을 활용한 명령어 조합 (0) | 2025.02.02 |
---|---|
Bash Shell Script 파일 입출력 (cat, tee, >) (0) | 2025.02.01 |
Bash Shell Script 백그라운드 실행 (&, jobs, fg, bg) (0) | 2025.01.30 |
Bash Shell Script 디렉토리 탐색 (find, xargs) (0) | 2025.01.29 |
Bash Shell Script 파일 생성, 삭제, 복사 (touch, rm, cp, mv) (0) | 2025.01.29 |