초보자를 위한 Linux chrt 명령 자습서(예제 5개)

초보자를 위한 Linux chrt 명령 자습서(예제 5개)

2022-10-18 last update

6 minutes reading linux shell
프로세스는 실행 중인 Linux 시스템의 핵심을 형성합니다. 프로그램이 프로세스로 변환될 때(실행될 때) 많은 속성이 설정됩니다. 경우에 따라 런타임에 이러한 속성을 변경할 수 있습니다. 이 작업을 수행할 수 있는 명령줄 도구 chrt가 있습니다.
이 자습서에서는 이해하기 쉬운 몇 가지 예를 들어 이 유틸리티에 대해 설명합니다. 그러나 그 전에 이 기사의 모든 예제가 Ubuntu 18.04 LTS 시스템에서 테스트되었다는 점을 언급할 가치가 있습니다.

리눅스 chrt 명령


위의 소개 섹션에서 이미 언급했듯이 chrt 명령을 사용하면 프로세스의 실시간 속성을 조작할 수 있습니다. 다음은 구문입니다.
chrt [options] -p [prio] pid
도구의 매뉴얼 페이지에서 설명하는 방법은 다음과 같습니다.
       chrt sets or retrieves the real-time scheduling attributes of an exist?
       ing pid, or runs command with the given attributes.  Both  policy  (one
       of  SCHED_OTHER,  SCHED_FIFO, SCHED_RR, SCHED_BATCH, or SCHED_IDLE) and
       priority can be set and retrieved.

       The SCHED_BATCH policy is supported since Linux 2.6.16.  The SCHED_IDLE
       policy is supported since Linux 2.6.23.

       The  SCHED_RESET_ON_FORK  flag  for policies SCHED_RR and SCHED_FIFO is
       supported since Linux 2.6.31.
다음은 chrt 명령의 작동 방식에 대한 좋은 아이디어를 제공하는 몇 가지 Q&A 스타일의 예입니다.

Q1. chrt 명령을 사용하는 방법?


스케줄링 정책이나 gedit 프로세스의 우선 순위를 조작하는 데 관심이 있다고 가정합니다. 따라서 가장 먼저 해야 할 일은 이 프로세스의 프로세스 ID를 얻는 것입니다. 이 작업은 pidof 명령을 사용하여 수행할 수 있습니다.
pidof gedit
예를 들어 내 시스템에서 위의 명령은 pid '6063'을 출력으로 제공했습니다. 이제 gedit 프로세스의 현재 일정 정책과 우선 순위를 검색하려면 다음과 같이 chrt를 사용하십시오.
chrt -p 6063
이 명령이 내 시스템에서 생성한 출력은 다음과 같습니다.
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

Q2. 차트에 최소/최대 값 우선 순위를 표시하는 방법은 무엇입니까?


이것은 -m 명령줄 옵션을 사용하여 수행할 수 있습니다.
chrt -m
예를 들어, 우리 시스템에서 위의 명령은 다음 출력을 생성했습니다.
SCHED_OTHER min/max priority    : 0/0
SCHED_FIFO min/max priority    : 1/99
SCHED_RR min/max priority    : 1/99
SCHED_BATCH min/max priority    : 0/0
SCHED_IDLE min/max priority    : 0/0
스케줄링 정책을 설정할 때 우선 순위 설정을 위해 이 값을 참조해야 합니다.

Q3. 스케줄링 정책을 SCHED_BATCH로 설정하는 방법은 무엇입니까?


이것은 -b 명령줄 옵션을 사용하여 수행할 수 있습니다.
예를 들어:
chrt -b -p 0 6063
이제 다음 명령을 사용하여 gedit에 대한 스케줄링 정책을 다시 확인하면:
chrt -p 6063
변경 사항이 적용되었음을 나타내는 다음과 유사한 출력이 표시되어야 합니다.
pid 6063's current scheduling policy: SCHED_BATCH
pid 6063's current scheduling priority: 0

Q4. 스케줄링 정책을 SCHED_FIFO로 설정하는 방법은 무엇입니까?


이것은 -f 명령줄 옵션을 사용하여 수행할 수 있습니다.
chrt -f -p 20 6063
이전 Q&A에서 했던 것처럼 chrt -p 명령을 사용하여 변경 사항을 교차 검증할 수 있습니다. -f 명령줄 옵션을 사용하려면 루트 권한이 필요할 수 있습니다.

Q5. 일정 정책을 SCHED_OTHER로 설정하는 방법은 무엇입니까?


이것은 -o 명령줄 옵션을 사용하여 수행할 수 있습니다.
chrt -o -p 0 6063
확인하려면 chrt -p 명령을 사용하십시오.
chrt -p 6063
다음은 제 경우의 출력입니다.
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

결론


동의합니다. chrt 명령은 매일 사용할 수 있는 도구가 아닙니다. 젠장, 시스템 관리나 커널 스케줄링 관련 작업을 할 때까지는 필요하지 않을 수도 있습니다. 그러나 적어도 그러한 도구가 있다는 것을 아는 것은 가치가 있습니다. chrt에 대한 자세한 내용은 해당 man page을 참조하십시오.