Linux를 실행하는 폐쇄된 환경에서 Autopilot을 실행하고 있으며 우선 순위를 변경해야 하는 커널 스레드가 있습니다. 나는 이것을 위해 커널을 패치하고 싶지 않습니다. 이 스레드는 SPI 드라이버가 하드웨어를 검색할 때 시작 초기에 생성되며 이름은 spi0입니다. 이 질문을 두 부분으로 나눌 수 있습니다. [spi0]이라는 스레드의 PID를 가져오는 데 도움이 필요합니다. chrt
PID가 있으면 이를 SCHED_FIFO로 표시하고 그에 따라 우선순위를 설정하는 것이 쉽습니다.
$ ps -ef | grep '\[spi0\]'
root 203 2 2 Aug28 ? 00:59:19 [spi0]
답변1
Unix Stack Exchange에서 태그를 검색하는 동안 pidof
및 pgrep
. 쉘 스크립트에 캡처된 이 출력은 훨씬 간단합니다.
$ pidof -s spi0
203
또는 프로세스 이름과 정확히 일치하는 항목을 가져와 해당 프로세스의 PID를 반환하세요.가장 오래된일치 프로세스는 pgrep
,
$ pgrep -x -o spi0
203
따라서 전체 스케줄러 조정은 다음과 같습니다.
$ sudo chrt -f -p 10 "$(pidof -s spi0)"
$ sudo chrt -p "$(pidof -s spi0)"
pid 203's current scheduling policy: SCHED_FIFO
pid 203's current scheduling priority: 10