[리눅스] 프로세스 모니터링을 위한 셸 스크립트

리눅스 시스템을 운영하다 보면 때로는 프로세스를 모니터링하고 조작해야 하는 경우가 있습니다. 이때 셸 스크립트를 사용하면 효과적으로 프로세스를 관리할 수 있습니다. 이번 포스트에서는 프로세스를 모니터링하고 조작하기 위한 간단한 셸 스크립트를 작성하는 방법에 대해 알아보겠습니다.

1. 현재 실행 중인 프로세스 확인하기

먼저, 현재 시스템에서 실행 중인 프로세스를 확인하는 방법을 살펴보겠습니다. 다음은 간단한 셸 명령어를 사용하여 현재 실행 중인 프로세스를 출력하는 예제입니다.

ps aux

위 명령어는 모든 사용자의 모든 프로세스를 상세하게 출력합니다. 필요에 따라 옵션을 조정하여 출력 결과를 필터링할 수 있습니다.

2. 특정 프로세스 모니터링하기

특정 프로세스의 동작을 모니터링하고 싶을 때는 프로세스 ID(PID)를 이용하여 해당 프로세스에 대한 정보를 확인할 수 있습니다. 다음은 특정 PID에 해당하는 프로세스를 모니터링하는 셸 스크립트의 예제입니다.

#!/bin/bash
PID=12345  # 모니터링할 프로세스의 PID
while true
do
    if ps -p $PID > /dev/null
    then
        echo "프로세스 $PID는 실행 중입니다."
    else
        echo "프로세스 $PID는 종료되었습니다."
        break
    fi
    sleep 5  # 5초마다 확인
done

이 스크립트는 지정한 PID에 해당하는 프로세스가 종료될 때까지 주기적으로 확인하며, 종료 여부를 출력합니다.

3. 프로세스 강제 종료하기

특정 상황에서 프로세스를 강제로 종료해야 할 수 있습니다. 다음은 특정 프로세스를 강제 종료하는 셸 스크립트의 예제입니다.

#!/bin/bash
PID=12345  # 종료할 프로세스의 PID
if ps -p $PID > /dev/null
then
    kill $PID
    echo "프로세스 $PID를 강제로 종료했습니다."
else
    echo "프로세스 $PID가 이미 종료되었거나 존재하지 않습니다."
fi

이 스크립트는 지정한 PID에 해당하는 프로세스를 강제로 종료합니다. 해당 프로세스가 이미 종료되었거나 존재하지 않는 경우에 대비한 메시지도 출력됩니다.

마무리

이상으로 리눅스 프로세스를 모니터링하고 조작하기 위한 셸 스크립트 작성법에 대해 알아보았습니다. 셸 스크립트를 통해 프로세스 관리 작업을 자동화하고 효율적으로 처리할 수 있습니다. 필요에 따라 스크립트를 수정하여 더 다양한 프로세스 관리 작업을 자동화할 수 있을 것입니다.

참고문헌: