• 締切済み

C言語でのLinux再起動方法とは?

QNo.3555570の質問と関連しているのですが。。 「system("shutdown -r now");」で、システムを再起動する プログラムを作成しております。 しかし、別のプロセスにて無効なメモリアドレスへのアクセスを した後に上記を実行すると再起動されません。 shutdownコマンドによるログは出力されております。 不足な情報がございましたらご指摘ください。 環境&コンパイラ  RedHat 7.3 2.96-110  Kernel 2.4.18-3 on an i686  gcc 2.96  GNU Make 3.79.1

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

そぼくな疑問ですが、別プロセスによる無限ループや暴走の監視は、OSがまともに動いているという前提が必ず必要でWDTとしては不十分としか言えません。ハード的なWDTは実装できないんでしょうか?

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.1

こちらの質問は最終的に何がしたいのか良く判りません。 なぜ、シャットダウンしないのか気になるなら、 Red Hat社に直接問い合わせた方が早いでしょう。 >ログは出力されております ちなみに出力された内容は、どうだったのでしょうか?

himaspo
質問者

補足

以前、永久ループ等の暴走を別プロセスにて検出(WDT)&対処(再起動)する プログラムを作成しました。 無効アドレスへのアクセス等の例外処理にも、上記のプログラムで 対応できるのではと思ったのですが、再起動が出来ませんでした。 ≪再起動時のログ≫ Broadcast message from root Wed Nov 29 15:37:57 2007... The system is going down for reboot Now !! 各コードの合間に細かくログを入れてみたところ system関数を実行する以前に上記のログが出力されておりました。 これはプログラム上で再起動する前に、 プログラム以外のところで例外処理か何らかの起因による 再起動を実施しようとしているように感じます。 でも実際には再起動できてないです。。 > Red Hat社に直接問い合わせた方が早いでしょう。 その方が良いかもしれませんね。