nice 명령어 사용법

프로세스를 지정한 nice 값(우선순위)으로 실행하는 명령어입니다.

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

기본 문법

nice [-n 증감값] 명령어 [인자...]

nice는 프로그램을 실행할 때 CPU 스케줄링 우선순위를 조정하는 명령어입니다. 리눅스에서 각 프로세스는 -20부터 19까지의 nice 값을 가지며, 값이 작을수록 우선순위가 높고 클수록 낮습니다. 일반 셸에서 실행한 프로세스의 기본 nice 값은 0이며, ps 출력의 NI 열에서 확인할 수 있습니다.

백업, 압축, 대용량 로그 분석처럼 오래 걸리지만 급하지 않은 작업에 높은 nice 값을 주면 다른 서비스가 CPU를 상대적으로 더 확보할 수 있습니다. 반대로 우선순위를 높이려면(음수 값) root 권한이 필요하며, 일반 사용자는 자신의 프로세스라도 nice 값을 낮출 수 없습니다.

nice는 '실행 시점'에 적용되고, 이미 실행 중인 프로세스에는 renice를 사용합니다. 이 차이를 구분해 두면 '#167 nice 값 지정해 백그라운드 프로세스 실행하기', '#119 프로세스 우선순위 확인 및 변경 - nice, renice' 문제를 푸는 데 도움이 됩니다.

자주 쓰는 옵션

옵션의미
-n N, --adjustment=N현재 nice 값에 N을 더해 명령을 실행합니다. 최종 값은 -20~19 범위로 잘립니다(범위를 벗어나면 경계값으로 고정).nice -n 15 sleep 300
(옵션·명령 모두 없음)인자 없이 실행하면 현재 셸의 nice 값을 출력합니다.nice
(명령만 지정)-n을 생략하고 명령만 주면 nice 값이 10 증가한 상태로 실행됩니다.nice sleep 60
--help사용법과 옵션 목록을 출력합니다.nice --help
--versioncoreutils 버전 정보를 출력합니다.nice --version

실무 예시

현재 셸의 nice 값 확인

$ nice
0

인자 없이 실행하면 현재 셸이 상속한 nice 값을 숫자로 출력합니다. 일반적인 로그인 셸에서는 0입니다.

nice 값 15로 백그라운드 실행 후 PID 저장

준비: mkdir -p /tmp/demo

$ nice -n 15 sleep 300 & echo $! > /tmp/demo/sleep.pid; cat /tmp/demo/sleep.pid
28

백그라운드로 실행한 뒤 셸 변수 $!로 마지막 백그라운드 프로세스의 PID를 얻어 파일에 저장합니다. 비대화형 셸(스크립트, 컨테이너 실행 등)에서는 '[1] PID' 같은 작업 제어 알림이 출력되지 않고 cat으로 읽은 PID만 표시됩니다. PID 숫자는 실행할 때마다 달라집니다.

-n 없이 실행하면 10이 더해짐

$ nice sleep 60 & sleep 1; ps -o pid,ni,cmd -p $!
PID  NI CMD
     47  10 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 60

증감값을 지정하지 않으면 기본 증감 10이 적용되어 NI가 10으로 표시됩니다.

nice로 실행 후 renice로 변경

준비: mkdir -p /tmp/demo; nice -n 5 sleep 300 & echo $! > /tmp/demo/p.pid; sleep 1

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

이미 실행 중인 프로세스의 우선순위는 nice가 아니라 renice로 바꿉니다. 변경 후 NI가 10이 됩니다. util-linux 2.32의 renice에서 -n은 '증감'이 아니라 설정할 절대 nice 값으로 동작합니다.

높은 nice 값으로 압축 작업 실행

준비: mkdir -p /tmp/demo/src; echo data > /tmp/demo/src/a.txt

$ nice -n 19 tar czf /tmp/demo/src.tar.gz -C /tmp/demo src && ls -l /tmp/demo/src.tar.gz
-rw-r--r--. 1 root root 149 Sep 16 11:52 /tmp/demo/src.tar.gz

CPU를 많이 쓰는 압축 작업에 가장 낮은 우선순위를 주어 다른 프로세스가 CPU를 더 확보하도록 합니다. 파일 크기와 시각은 환경에 따라 달라지며, 권한 뒤의 점(.)은 SELinux 보안 컨텍스트가 있음을 뜻합니다.

주의할 점

  • 일반 사용자는 nice 값을 낮출 수 없습니다. 음수 값(-20~-1)을 주려면 root 권한이 필요합니다. renice로도 마찬가지로 값을 낮추는 것은 root만 가능합니다.
  • nice는 실행 시점에만 적용됩니다. 이미 실행 중인 프로세스는 renice -n 값 -p PID로 바꿔야 합니다.
  • -n을 생략하면 0이 아니라 기본 증감 10이 적용됩니다. 정확한 값이 필요하면 -n을 명시하세요.
  • nice 값은 절대 우선순위가 아니라 상대적 조정치이며, 부모 프로세스의 값에 더해져 자식에게 상속됩니다. 계산 결과가 -20~19를 벗어나면 경계값으로 고정됩니다.
  • nice 값은 CPU 스케줄링에만 영향을 줍니다. 디스크 I/O가 병목인 작업은 nice로 체감 효과가 작으므로 ionice 등을 함께 검토해야 합니다.
  • 예시의 PID, 파일 크기, 시각은 실행 환경마다 다르므로 값 자체가 아니라 출력 형식과 NI 열을 확인하세요.

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

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

관련 명령어

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