renice 명령어 사용법

실행 중인 프로세스의 nice 값을 변경하는 명령어입니다.

프로세스·작업관리연결 실습 문제 2개Rocky Linux 8 기준 · 실행 결과는 실습 컨테이너에서 확인

기본 문법

renice [-n] 우선순위 [-p|-u|-g] 대상...

renice는 이미 실행 중인 프로세스의 nice 값(NI)을 바꿔 CPU 스케줄링 우선순위를 조정하는 명령어입니다. nice 값은 -20부터 19까지이며, 값이 작을수록 우선순위가 높고 클수록 낮습니다. 새로 실행할 명령의 우선순위를 정하는 nice와 달리, renice는 PID·사용자·프로세스 그룹을 지정해 이미 동작 중인 프로세스에 적용합니다.

백업·압축·빌드처럼 오래 걸리고 CPU를 많이 쓰는 작업의 nice 값을 올려 대화형 작업에 주는 영향을 줄이는 데 사용합니다. 반대로 값을 내려 우선 처리하게 할 수도 있는데, 음수 값으로 낮추는 것은 root만 가능합니다. 일반 사용자는 자신의 프로세스에 대해 값을 올리기만 할 수 있고, 한 번 올린 값을 다시 내릴 수 없습니다.

리눅스 관련 자격 시험에서는 ps로 PID와 NI 값을 확인한 뒤 renice로 특정 값을 지정하는 형태가 자주 쓰입니다. 실습할 때는 sleep이나 timeout으로 띄운 프로세스의 PID를 찾아 NI 값을 바꿔 보면 동작을 확인할 수 있습니다.

자주 쓰는 옵션

옵션의미
-n 값적용할 nice 값을 지정합니다. util-linux의 renice에서는 상대 증감이 아니라 절대값으로 설정됩니다.renice -n 10 -p 1234
-p PID대상을 프로세스 ID로 지정합니다(기본 해석 방식).renice 10 -p 1234
-u 사용자해당 사용자(이름 또는 UID)가 소유한 모든 프로세스에 적용합니다.renice 5 -u demo_user
-g PGID해당 프로세스 그룹 ID에 속한 모든 프로세스에 적용합니다.renice 5 -g 100
-V버전 정보를 출력합니다.renice -V
-h도움말을 출력합니다.renice -h

실무 예시

PID를 지정해 우선순위 변경

준비: sleep 300 &

$ renice 10 -p $(pgrep -n sleep)
19 (process ID) old priority 0, new priority 10

가장 최근에 실행된 sleep 프로세스의 nice 값을 10으로 변경합니다. 출력에 이전 값과 새 값이 함께 표시됩니다(PID는 실행 환경마다 다릅니다).

-n 옵션으로 값 지정

준비: sleep 300 &

$ renice -n 15 -p $(pgrep -n sleep)
41 (process ID) old priority 0, new priority 15

-n 옵션을 붙여도 동일하게 동작합니다. util-linux의 renice에서는 -n 뒤의 값이 절대 nice 값으로 설정됩니다.

timeout으로 실행한 프로세스의 NI 변경

준비: timeout 300 sleep 300 & echo $! > /tmp/renice-demo.pid; sleep 1

$ renice 10 -p $(cat /tmp/renice-demo.pid) && ps -o pid,ni,cmd -p $(cat /tmp/renice-demo.pid)
51 (process ID) old priority 0, new priority 10
    PID  NI CMD
     51  10 /usr/bin/coreutils --coreutils-prog-shebang=timeout /usr/bin/timeout 300 sleep 300

pgrep -f 'timeout 300'은 이전 실습에서 남은 프로세스나 이미 종료된 PID까지 함께 잡아 'failed to get priority ... No such process' 오류가 날 수 있습니다. 백그라운드 실행 직후의 $!로 PID를 정확히 저장해 대상 하나만 변경합니다.

우선순위를 음수로 낮추기(root 권한 필요)

준비: sleep 300 & echo $! > /tmp/renice-demo2.pid; sleep 1

$ sudo renice -n -5 -p $(cat /tmp/renice-demo2.pid) && ps -o pid,ni,cmd -p $(cat /tmp/renice-demo2.pid)
1234 (process ID) old priority 0, new priority -5
    PID  NI CMD
   1234  -5 sleep 300

nice 값을 음수로 내려 우선순위를 높입니다. 일반 사용자 권한으로 실행하면 'Permission denied'가 발생하므로 root 권한(sudo)이 필요합니다. 값은 -n 뒤에 두어 옵션으로 오해되지 않게 하는 편이 안전합니다. 실습 컨테이너에서는 실행되지 않는 명령이라 대표 출력을 표시했습니다.

주의할 점

  • 일반 사용자는 nice 값을 올리기만 할 수 있습니다. 음수로 내리거나 한 번 올린 값을 되돌리려면 root 권한이 필요합니다.
  • nice 명령은 상대값 증가, util-linux의 renice는 절대값 설정입니다. renice 10은 현재 값에 10을 더하는 것이 아니라 10으로 지정합니다.
  • NI 값과 ps의 PRI 열은 다릅니다. NI는 사용자가 지정하는 값이고 PRI는 커널이 계산한 실제 우선순위입니다.
  • -u로 사용자를 지정하면 해당 계정의 모든 프로세스가 한꺼번에 바뀌므로 범위를 확인하고 사용해야 합니다.
  • pgrep -f로 PID를 찾을 때는 의도하지 않은 프로세스까지 매칭될 수 있습니다. 여러 PID가 잡히면 renice가 일부 대상에서 실패하고 종료 코드 1을 반환하므로, 가능하면 $!나 정확한 PID를 사용하세요.
  • 음수 값을 첫 인자로 쓰면(renice -5 ...) 옵션과 혼동될 수 있으므로 renice -n -5 형태를 권장합니다.

이 명령어로 풀 수 있는 실습 문제

브라우저 웹 터미널에서 바로 풀고 요구사항별로 자동 채점됩니다. 로그인 없이 5분 체험도 가능합니다.

관련 명령어

마지막 검수 2026-09-16 · 내용에 오류가 있으면 문제 페이지의 질문 기능으로 알려 주세요.