고급 프로세스 관리
Linux 는 기본적인 ps 및 kill 명령어를 넘어 프로세스를 관리하기 위한 추가 명령어를 제공합니다. 이러한 도구는 프로세스를 식별하고 종료하는 데 더 많은 유연성과 편의성을 제공합니다.
pgrep 명령어
pgrep 명령어를 사용하면 ps의 출력을 시각적으로 스캔하지 않고도 이름으로 프로세스를 찾을 수 있습니다.
pgrep sleep
이 명령어는 이름에 "sleep"이 포함된 모든 프로세스를 찾아 해당 PID 를 출력합니다.
pkill 명령어
pkill 명령어는 pgrep과 kill의 기능을 결합합니다. 즉, 이름으로 프로세스를 찾아 신호를 보냅니다.
## Start two sleep processes
sleep 300 &
sleep 300 &
## Kill all sleep processes
pkill sleep
모든 sleep 프로세스가 종료되었는지 확인합니다.
ps | grep sleep
killall 명령어
pkill과 유사하게 killall 명령어는 이름으로 프로세스를 종료합니다.
## Start two more sleep processes
sleep 300 &
sleep 300 &
## Kill all sleep processes
killall sleep
다시 한 번 확인합니다.
ps | grep sleep
nice 및 renice를 사용한 프로세스 우선 순위
Linux 는 또한 nice 및 renice 명령어를 사용하여 프로세스의 우선 순위를 제어할 수 있도록 합니다.
낮은 우선 순위로 프로세스를 시작해 보겠습니다.
nice -n 10 sleep 300 &
nice 값은 -20(최고 우선 순위) 에서 19(최저 우선 순위) 까지입니다. 기본값은 0 입니다. root 사용자만 음수 nice 값을 설정할 수 있습니다.
renice를 사용하여 실행 중인 프로세스의 우선 순위를 변경할 수 있습니다.
sleep_pid=$!
echo "Sleep process ID with lower priority: $sleep_pid"
renice -n 15 -p $sleep_pid
새로운 우선 순위를 확인해 보겠습니다.
ps -o pid,nice,cmd -p $sleep_pid
마지막으로 이 프로세스를 종료합니다.
kill $sleep_pid
이러한 고급 프로세스 관리 명령어는 여러 프로세스를 관리하고 시스템 리소스를 제어하는 보다 효율적인 방법을 제공합니다. 이는 특히 시스템이 바쁘거나 성능 문제를 해결할 때 유용합니다.