2
我可以使用emergency_restart()嗎?如何重置無線驅動程序中的系統?
或者如果我使用kill(1,SIGTERM);
我需要包括 「signal.h中」,但似乎沒有無線驅動程序工作
- 嵌入式Linux系統
- 設備:無線AP
- 代碼部分:無線驅動程序
我可以使用emergency_restart()嗎?如何重置無線驅動程序中的系統?
或者如果我使用kill(1,SIGTERM);
我需要包括 「signal.h中」,但似乎沒有無線驅動程序工作
正如Basile所說,kill()是一個用戶空間的系統調用,所以你不能在內核模塊中使用它。無論如何,這是一種粗糙的方式來完成你正在嘗試做的事情。除非你有理由通過kernel_restart()使用emergency_restart(),否則我會使用後者。您所擁有的選項可在reboot.h中找到。
順便說一句,這是在您的系統中打開一個安全漏洞。由於驅動程序正在解釋數據包以確定是否需要重新啓動,因此操作系統無法確定該源是否有權在系統上執行此類操作。用戶空間守護進程可能會更好,它使用適當的權限運行以重新啓動計算機,並且可以充當身份驗證代理和重新啓動代理,而不是在驅動程序中執行此操作。
你不能在內核驅動程序中使用user-land系統調用(如'kill')。 –