nice 명령어
nice 명령어는 프로그램을 실행하기 전에 프로세스의 우선순위를 조정할 수 있게 해주는 도구입니다. 조정된 우선순위로 명령어를 실행하며, 명령어를 지정하지 않으면 현재 우선순위 값을 출력합니다.
우선순위 값의 범위는 -20에서 19까지입니다. 값이 작을수록 높은 우선순위를 의미하며, 기본값은 0입니다.
권한 제한: root 사용자는 음수 우선순위 설정과 기존 프로세스의 우선순위 감소가 가능하지만, 일반 사용자는 양수 우선순위만 설정할 수 있으며 기존 프로세스의 우선순위 값만 증가시킬 수 있습니다.
사용법
nice [옵션] [명령어 [인수]]
주요 옵션
-n, --adjustment=N: 우선순위에 정수 N 값을 더함 (상대적 우선순위 지정)--help: 도움말 표시--version: 버전 정보 표시
renice 명령어
renice는 이미 실행 중인 하나 이상의 프로세스 우선순위를 변경하는 명령어입니다.
사용법
renice [-n] 우선순위 [-g|u|p] 식별자...
주요 옵션
-n, --priority: 새로운 우선순위 값 지정 (첫 번째 인자로 사용)-g, --pgrp <pgid>: 프로세스 그룹 ID로 식별-u, --user <name_or_uid>: 사용자 이름 또는 UID로 식별-p, --pid <pid>: 프로세스 ID로 식별 (기본값)-h, --help: 도움말 표시-V, --version: 버전 정보 표시
실제 사용 예시
예제 1: nice로 프로세스 시작하기
$ nice -n 5 vim test.txt
[1]+ 중지됨 nice -n 5 vim test.txt
$ ps -aux | grep vim
user 12423 1.1 0.2 151796 5368 pts/0 TN 16:22 0:00 vim test.txt
user 12431 0.0 0.0 112724 988 pts/0 S+ 16:22 0:00 grep --color=auto vim
$ top -p 12423
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12423 user 25 5 151796 5368 2764 T 0.0 0.3 0:00.08 vim
예제 2: renice로 실행 중인 프로세스 우선순위 변경
$ renice -n 10 -p 12423
12423 (프로세스 ID) 기존 우선순위: 5, 새로운 우선순위: 10
$ top -p 12423
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12423 user 30 10 151796 5368 2764 T 0.0 0.3 0:00.08 vim
예제 3: 일반 사용자의 우선순위 조정 제한
$ renice -8 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족
$ renice -11 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족
$ renice 8 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족
$ renice 11 -p 12423
12423 (프로세스 ID) 기존 우선순위: 10, 새로운 우선순위: 11
결과 분석
위의 테스트 결과를 통해 확인할 수 있듯이, 비특권 사용자는 우선순위 값을 낮추거나(우선순위 향상) 음수 값으로 설정하는 것이 불가능합니다. 그러나 현재 우선순위보다 높은 값(우선순위 하락)으로만 조정할 수 있습니다. root 권한이 있다면 음수 우선순위 설정 등 모든 조정이 가능해집니다.