pid의 task_struct를 얻는 방법은 무엇입니까?

pid의 task_struct를 얻는 방법은 무엇입니까?

애플리케이션의 타이밍 필드를 모니터링해야 하기 때문에 PID로 프로세스의 task_struct를 가져오고 싶습니다. 모듈을 만들지 않고도 가능합니까? 그렇지 않다면 프로세스의 시작 시간, 사용자 및 커널 모드에서의 실행 시간, 마지막 실행 등을 얻을 수 있는 방법이 있습니까?

답변1

task_struct는 직접 노출되지 않지만 /proc/에서 사용할 수 있는 것이 많습니다.PID, 기록됨공정(5). 특히 /proc/PID/stat에는 아래와 같이 여러 필드가 있습니다.

663969 (bash) S 255279 663969 663969 34836 721047 4194304 1103 125311 1 2396 1 2 2385 4333 20 0 1 0 152947991 9584640 1123 18446744073709551615 94761163685888 94761164450717 140730124580704 0 0 0 65536 3686404 1266761467 0 0 0 17 0 0 0 5 0 0 94761164686000 94761164733764 94761175252992 140730124584237 140730124584243 140730124584243 140730124586990 0

1 기반 필드에는 PID 663969(필드 1), PPID 255279(필드 4), 사용자 공간 1(필드 14) 및 시스템 공간 2(필드 15)의 실행 시간과 시작 시간 152947991(필드 22)이 시계 틱 단위로 포함됩니다. ). 그것이 무엇을 의미하는지 잘 모르겠습니다 last execution.

관련 정보