2

我可以使用 Emergency_restart() 吗?

或者如果我使用 kill(1, SIGTERM);

我需要包含“signal.h”,但它似乎不适用于无线驱动程序

  1. 嵌入式linux系统
  2. 设备:无线AP
  3. 代码部分:无线驱动
4

1 回答 1

0

正如 Basile 所说, kill() 是一个用户空间系统调用,因此您不能从内核模块中使用它。无论如何,这是完成您正在尝试做的事情的一种粗略方式。除非您有理由在 kernel_restart() 上使用 Emergency_restart(),否则我会使用后者。您可以在reboot.h中找到您拥有的选项。

顺便说一句,这会在您的系统中打开一个安全漏洞。由于驱动程序正在解释数据包以确定是否需要重新启动,因此操作系统无法帮助确定该源是否有权在您的系统上执行此类操作。您可能最好使用用户空间守护程序,该守护程序以适当的权限运行以重新启动计算机,并且可以充当身份验证代理和重新启动代理,而不是在您的驱动程序中执行。

于 2013-07-13T15:22:35.800 回答