[英]reboot linux from a program
之前已經問過這個問題: 如何從C ++程序中重啟Linux?
但是,沒有一個答案似乎對我有用。
這是我的問題:
我有一個硬件上的程序。 我可以以root用戶身份登錄並運行它而不會出現任何問題。 但是,如果我以root priveleges身份登錄為其他用戶,程序執行正常,但不會重新啟動。 它只關閉當前的Telnet會話。
要重新啟動,我使用了system(reboot)
。 到目前為止,我嘗試過:
sync();
reboot(RB_POWER_OFF);
和
execl("/sbin/reboot","reboot",NULL,NULL);
無濟於事。
(我不確定,如果我正確使用了execl
。這是我第一次使用它。如果我搞砸了,請糾正我)。
任何幫助,將不勝感激。
編輯:
/data/local/sbin # cat /etc/passwd
root:x:0:0:root:/root:/bin/sh
service:54zljpSAe:0:0:root:/root:/data/local/sbin/script
如果我以服務身份登錄,將運行“script”。 用戶有一個列表選項可供選擇。 其中一個選項是運行上述程序。
編輯:
另外值得一提的是:腳本中的一個選項是重啟系統。 如果從腳本內部調用,它可以工作。 但我想從程序中調用reboot。
首先,以“root priveleges的不同用戶”身份登錄系統,如果系統重啟,則執行'init 6'?
是的:使用系統(“init 6”); 在你的程序中。
不:你有安全問題,首先你必須解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.