[모듈프로그래밍] - task_struct 이용하여 프로세스 정보 확인하기
○ task_struct 이용하여 프로세스 정보 확인하기 |
#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/sched.h> // task_struct 사용하기 위한 헤더 파일 // find / -name "sched.h" 로 헤더 파일 위치를 찾는다 int __init init_test(void){ // 모듈이 장착될 때(insmod) struct task_struct *p; p = get_current(); // 현재 프로세스를 얻는다 // 자식과 부모의 pid, state, comm 을 얻는다 printk("[Kernel Message] : Currnet Process\n"); printk("pid = %d, state = %ld, comm = %s\n", p->pid, p->state, p->comm); struct task_struct *pa; pa = p->real_parent; // 현재 프로세스가 가르키는 부모 프로세스를 얻는다 printk("[Kernel Message] : Parent Process\n"); printk("pid = %d, state = %ld, comm = %s\n", pa->pid, pa->state, pa->comm); return 0; } void __exit exit_test(void){} // 모듈이 해제될 때(rmmod) module_init(init_test); module_exit(exit_test); MODULE_LICENSE("GPL"); |
# make 통해 커널 오브젝트 파일을 생성하고
# /sbin/insmod 해당파일.ko 통해 커널 오브젝트 파일을 장착한다
# dmesg 통해 확인한다
'커널모듈프로그래밍' 카테고리의 다른 글
[모듈프로그래밍] - 모듈에 값을 입력받아 출력하기 (0) | 2017.05.24 |
---|---|
[모듈프로그래밍] - 모듈에 함수를 추가하여 다른 모듈에서 사용하기 (0) | 2017.05.24 |
[모듈프로그래밍] - 커널 모듈 구현 (0) | 2017.05.21 |
[커널프로그래밍] - make menuconfig 안되면 해결하기 (0) | 2017.03.31 |
[커널프로그래밍] - linux/linkage.h 없다하면 해결하기 (0) | 2017.03.31 |