2010-05-24 50 views
0

试一试这个免费的论坛给开发者。我正在将一个串行驱动程序迁移到内核2.6.31.5。我使用了各种书籍和文章来解决问题2.4如何在Linux Kernel 2.6.31.5中执行“kill_proc()”

打算现在我有几个kill_proc的未在内核中支持了2.6.31.5

什么是这个迁移到内核的最快方法2.6.31.5杀死线程的方法。在他们所说的书中使用kill(),但在2.6.31.5中似乎并不如此。使用send_signal会是一个好方法,但我该怎么做?必须有一个task_struct或者其他的东西,我可以提供我的PID和SIGTERM,并且让我的线程死掉,但是看起来更复杂一些,必须用一个我不知道的参数来设置结构。

如果任何人有一个真实的例子,或链接到一个地方与2.6.31内核的最新信息,我会非常感激。亲切地说,我需要杀死我的线索,而这不是很难。 )

这是现在我的代码:

kill_proc(ex_pid,SIGTERM,1);

/Jörgen的

回答

0

对于kthreads使用,现在kthread_stop呼叫者(例如,模块的退出功能)可以调用。 k线程本身必须使用kthread_should_stop进行检查。这些内容的例子在内核源码树中很容易找到。