이름으로 PID 가져오기

이름으로 PID 가져오기

Linux를 실행하는 폐쇄된 환경에서 Autopilot을 실행하고 있으며 우선 순위를 변경해야 하는 커널 스레드가 있습니다. 나는 이것을 위해 커널을 패치하고 싶지 않습니다. 이 스레드는 SPI 드라이버가 하드웨어를 검색할 때 시작 초기에 생성되며 이름은 spi0입니다. 이 질문을 두 부분으로 나눌 수 있습니다. [spi0]이라는 스레드의 PID를 가져오는 데 도움이 필요합니다. chrtPID가 있으면 이를 SCHED_FIFO로 표시하고 그에 따라 우선순위를 설정하는 것이 쉽습니다.

$ ps -ef | grep '\[spi0\]'
root       203     2  2 Aug28 ?        00:59:19 [spi0]

답변1

Unix Stack Exchange에서 태그를 검색하는 동안 pidofpgrep. 쉘 스크립트에 캡처된 이 출력은 훨씬 간단합니다.

$ 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

관련 정보