私は組み込みLinuxに取り組んでいます。カーネル空間 (カーネル モジュール) から特定のユーザー空間プロセスにシグナルを送信する必要があります。PID は動的であるため、このプロセスがシグナルを送信するには pid を取得する必要がありますか? カーネル空間の名前からプロセスの PID を取得するにはどうすればよいですか?
質問する
4989 次
2 に答える
4
ユーザー空間のすべてのユーザープロセスには、カーネル空間に関連付けられた task_struct (循環リンクリスト) があります。これにはすべてのプロセスの詳細が含まれているため、それを見てプロセス名を確認できます。
書き方例
for_each_process(task) {
/* compare your process name with each of the task struct process name*/
if ( (strcmp( task->comm,your_process_name) == 0 ) ) {
/* if matched that is your user process PID */
process_id = task->pid;
}
}
于 2012-06-12T12:07:57.400 に答える