본문 바로가기

Programming/Linux_Kernel

kernel 에서 user process 실행하기


call_usermodehelper 라는 함수를 사용하면 됩니다.
envp 의 0에 실행파일의 path 가 들어가는것을 눈여겨 보시기 바랍니다.

#define NAND_DUMP_MAKE_FILE_APPL_PATH "/bin/nand_log_dump_file"
#define DEFAULT_LOG_FILE_SAVE_PATH "--to=/mnt/ums/.tmp/debug/"

char *argv[] = {NAND_DUMP_MAKE_FILE_APPL_PATH, DEFAULT_LOG_FILE_SAVE_PATH, NULL};
 char *envp[] = { "HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL };
 

  rst = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);