리눅스 명령어 · 3 min read · Sep 19, 2025

리눅스 nice 및 renice 명령어 튜토리얼 (7가지 예제)

리눅스 명령줄의 힘은 명령줄 도구를 사용하여 프로세스의 스케줄링 우선 순위를 쉽게 조정할 수 있다는 사실에서 측정할 수 있습니다. 네, 가능합니다. 이 튜토리얼에서는 nicerenice 유틸리티를 사용하여 이를 수행하는 방법에 대해 논의할 것입니다.

하지만 그 전에, 이 기사에 있는 모든 예제가 Ubuntu 16.04LTS 시스템에서 테스트되었다는 점을 언급할 가치가 있습니다.

리눅스 nice 및 renice 명령어

nice 명령어는 수정된 스케줄링 우선 순위로 프로그램/프로세스를 실행할 수 있게 해주며, renice 명령어는 이미 실행 중인 프로세스의 스케줄링 우선 순위를 변경할 수 있게 해줍니다. 다음은 이 두 명령어의 일반적인 구문입니다:

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

각각의 매뉴얼 페이지에서 그들에 대해 다음과 같이 설명하고 있습니다:

Nice:   
 COMMAND를 조정된 niceness로 실행하며, 이는 프로세스 스케줄링에 영향을 미칩니다. COMMAND가 없으면 현재 niceness를 출력합니다. Niceness 값은 -20(프로세스에 가장 유리)에서 19(프로세스에 가장 불리)까지 범위입니다.
Renice:  
 Renice는 하나 이상의 실행 중인 프로세스의 스케줄링 우선 순위를 변경합니다. 다음의 who 매개변수는 프로세스 ID, 프로세스 그룹 ID 또는 사용자 이름으로 해석됩니다. 프로세스 그룹을 renice하면 프로세스 그룹의 모든 프로세스의 스케줄링 우선 순위가 변경됩니다. 사용자를 renice하면 해당 사용자가 소유한 모든 프로세스의 스케줄링 우선 순위가 변경됩니다. 기본적으로 영향을 받을 프로세스는 프로세스 ID로 지정됩니다.

다음은 이러한 도구들이 어떻게 작동하는지에 대한 더 나은 아이디어를 제공할 Q&A 스타일의 예제입니다.

Q1. 실행 중인 프로그램/프로세스의 niceness를 확인하는 방법은?

네, 변경하기 전에 기존 스케줄링 우선 순위를 확인하는 방법을 먼저 알아야 합니다. 실행할 프로세스에 대한 것이라면 기본 스케줄링 우선 순위는 항상 0이라는 것을 알아야 합니다.

예를 들어, 우리는 다음 프로세스를 실행했습니다:

./test-new

그리고 다음 명령어를 사용하여 우선 순위를 확인했습니다:

ps -lu himanshu | grep test-new

여기서 ‘himanshu’는 ‘test-new’ 프로세스를 소유한 사용자입니다. 위 명령어가 생성한 출력은 다음과 같습니다:

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

8번째 열의 값이 nice 값이며, 보시다시피 0입니다.

Q2. nice 명령어는 어떻게 작동하나요?

이제 본론으로 들어가서, nice 명령어는 어떻게 작동하나요? 쉽습니다 - 다음과 같이 도구를 사용하세요:

nice -PRIORITY COMMAND

예를 들어, 스케줄링 우선 순위를 10으로 설정하고 싶다면, 다음과 같이 할 수 있습니다:

nice -10 ./test-new

이 경우 ps 명령어의 출력은 다음과 같으며, 우선 순리가 10으로 변경되었음을 확인합니다.

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

Q3. nice를 음수 값으로 작동하게 하려면?

앞서 언급했듯이, niceness 값은 -20에서 19까지 범위이며, 전자는 가장 유리하고 후자는 가장 불리합니다. 프로세스에 음수 nice 값을 할당하려면 이중 하이픈을 사용해야 합니다.

예를 들어,

sudo nice --10 ./test-new

음수 nice 값을 프로세스에 할당하려면 루트 권한이 필요하다는 점에 유의하세요. 그리고 정확히 이 이유로 인해 새로운 niceness를 확인하기 위한 ps 명령어에는 다른 사용자 이름 대신 ‘root’가 포함되어야 합니다.

$ ps -lu root | grep test-new  

이 명령어가 생성한 출력은 다음과 같습니다:

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

따라서 프로세스가 이제 -10의 nice 값으로 실행되고 있음을 알 수 있습니다.

Q4. niceness에 정수 값을 추가하는 방법은?

-n 명령줄 옵션을 사용하여 nice 값을 조정할 수 있으며, 이는 niceness에 정수 값을 추가합니다. 기본적으로 이 설정 값은 10이지만 다른 값을 전달할 수도 있습니다.

-n, --adjustment=N

예를 들어:

nice --adjustment=5 ./test-new

그리고 이 경우 ps 명령어가 생성한 출력은 다음과 같습니다:

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

따라서 우선 순위가 5로 설정되었음을 알 수 있습니다.

Q5. 실행 중인 프로세스의 우선 순위를 변경하는 방법은?

nice 명령어는 프로그램을 시작할 때 사용되며, renice 명령어는 실행 중인 프로세스의 우선 순위를 변경할 수 있게 해줍니다. 예를 들어, 다음과 같이 이미 실행 중인 ‘test-new’ 프로세스의 우선 순위를 5에서 15로 변경했습니다.

renice -n 15 -p 7314

-p 인자는 프로세스 ID를 위한 것입니다. 위 명령어가 생성한 출력은 다음과 같습니다:

7314 (process ID) old priority 5, new priority 15

그리고 nice 값이 실제로 15로 변경되었습니다.

Q6. 그룹에 속한 모든 프로세스의 우선 순위를 변경하는 방법은?

이를 위해 -g 옵션을 사용할 수 있습니다. 예를 들어:

renice -n 20 -g howtoforge

위 명령어는 ‘howtoforge’ 그룹에 속한 모든 프로세스의 우선 순위를 변경합니다.

Q7. 사용자에게 속한 모든 프로세스의 우선 순위를 변경하는 방법은?

사용자에게 속한 모든 프로그램의 우선 순위를 변경하려면 -u 옵션을 사용하세요. 예를 들어:

renice -n 5 -u himanshu

물론 일반 리눅스 명령줄 사용자는 이러한 도구가 필요한 상황에 처하지 않을 것이지만, 중요한 명령줄 도구에 대한 지식을 갖추는 것은 항상 좋습니다. nice와 renice는 그 중 하나입니다. 좋은 점은 이들에 대한 학습 곡선이 전혀 가파르지 않다는 것입니다. 우리는 이미 여기에서 대부분의 옵션에 대해 논의했습니다. 이러한 유틸리티에 대한 더 많은 정보는 매뉴얼 페이지를 참조하세요 - 여기와 여기.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.