사용하려고 하는데 kill
Linux 커널 내부에서 사용했지만 sys_kill
작동하지 않습니다. 오류가 발생하므로 사용자 명령의 프로세스 대신 커널 내부 프로세스를 종료하는 데 사용해야 하는 것이 무엇인지 아는 사람이 있습니까?
그래서 내 문제는 커널의 시스템 호출을 사용하는 방법과 다릅니다.
명확하게 해달라고 요청하신 분들을 위해.. 예, Linux가 네트워크에서 패킷을 수신할 때 프로세스를 종료하려고 합니다. 따라서 1000개의 패킷 후에 Linux는 프로세스 번호 17722를 종료해야 합니다. 나는 Kill, kill_sys를 사용하려고 시도했지만 사용자 수준이 아닌 커널 수준에 있었기 때문에 작동하지 않았습니다.
답변1
sys_kill
시스템 호출입니다. 시스템 호출은사용자 공간애플리케이션이 커널을 호출합니다.
kill
커널 내부에서 프로세스를 시작 하려면 다음을 살펴보세요 kill_proc_info
.
답변2
커널이 시스템 호출을 하는 것은 드문 일이 아닙니다(또는 적어도 알려지지 않은 것은 아닙니다). 하지만 먼저 커널 가상 주소를 인수로 전달할 수 있도록 몇 가지 해킹을 수행해야 합니다(적어도 다른 장애물과 문제점이 있습니다). , 모두가 피해야 할 일입니다(도움이 될 수 있다면). 예를 들어, 인터럽트 핸들러 내에서 이 작업을 수행하는 것은 좋은 생각이 아닙니다.이 블로그 게시물합리적인 설명이 주어졌습니다.