簡體   English   中英

從程序重啟linux

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM