簡體   English   中英

從內核模塊殺死用戶空間程序

[英]Killing a userspace program from a kernel module

我只是想知道是否有一種方法可以從內核模塊中殺死用戶空間程序。我知道kill命令是行不通的,因為它是從用戶空間到內核空間的系統調用。

此代碼將終止調用過程。

int signum = SIGKILL;
task = current;
struct siginfo info;
memset(&info, 0, sizeof(struct siginfo));
info.si_signo = signum;
int ret = send_sig_info(signum, &info, task);
if (ret < 0) {
  printk(KERN_INFO "error sending signal\n");
}

您可以在此處查看OOM殺手的工作方式...

http://lxr.free-electrons.com/source/mm/oom_kill.c?v=3.16#L516

如果您知道用戶空間可以使用什么syscall來傳遞信號,那么為什么不檢查它的實現方式呢? 但是,更重要的是,為什么您首先需要發送信號? 您如何確定首先要發信號的信號?

這是另一個可怕的大學任務嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM