
Ubuntu日本語フォーラム
ログインしていません。
装置に組み込むPCですが、SSD(EXT4)のファンレスPCにUbuntu16.04をインストールしています。
PCを意識させたくないので装置のメインスイッチを入り切りするだけにしたいのです。
現状では、主電源OFF(シャットダウンなし)してからでも普通に起動はしています。
(なお、起動中は自身のプログラムでファイルアクセスは行いません。)
本体以外の外部スイッチからシャットダウン終了できればいいのですが、方法が思いつきませんでした。
このようなやりかたで問題はないでしょうか。
以上、ご意見をお伺いします。
オフライン
ここでいう「メインスイッチ」が、組み込み用PCの電源ボタンのことを言っているなら、ボタン押下でシャットダウンシーケンスに入る方法があります。
http://mohammedari.blogspot.jp/2013/12/ubuntu.html
どのような環境かはわかりませんが、この方法が使えるなら、ボタン操作だけで通常のシャットダウンが可能です。
オフライン
回答ありがとうございます。
残念ですがPC本体の電源ではなく、装置全体のメインスイッチのことです。
あとは、PCから何らかのステータスを得てシャットダウンするしかなさそうです。
(1)PCから装置へ起動中のステータスを立てる
(2)メインスイッチを電子SWにしてリレーで電源をOFFにできるようにする。
(3)メイン電子スイッチが押されたらPCへステータスを送る。
(4)PCがシャットダインして電源が落ちたら、電源リレーをOFFにする。
装置側に小型のPLCを接続すれば、シリアル通信でも行けそうです。
PCへの供給電源を落としても障害がないとの確信があれば、ここまでしなくても良いのですが。
オフライン
メモリ上のディスクキャッシュがすべて、ディスクに書き込まれてさえいれば、いつ電源供給を遮断してもソフトウェア (OS) 的には問題ありません (ハードウェア的に、例えば HDD のヘッド退避だとかはそのハードウェア次第なのでなんとも言えませんが。)
昨今のコンピューター本体の電源スイッチは、EFI を含む BIOS 経由で OS に電源オフを通知する仕組みがあり、それを受けた OS がシャットダウン処理の最後に自分自身 (コンピューター本体) の電源を遮断する信号を出力するようになっています。
この仕組みで、メモリ上のディスクキャッシュをすべてディスクに書き込んだことを保証して、電源を遮断します。
コンピューター本体に供給する電源側でこれを遮断する方法だと、メモリ上のディスクキャッシュをディスクに書き込まないまま OS の動作が中断することになるため、何らの不具合が生じても不思議ではありません。
最近の OS はできるだけ速やかにディスクキャッシュをディスクに書き出すようにはなっていますが、電源を遮断しようとする直前に多量のディスク出力があったりすると、書き残したままで OS の動作が中断する可能性も大きくなります。
どうしても供給電源側で遮断するようにしたいのであれば、小容量の UPS を設置 (または相当機能を持つ機器を作成) することを勧めます。
UPS と連携するためのパッケージがあるので、それの設定を多少弄れば、大抵の UPS ((または相当機能持つ機器) に対応できると主ます。
オフライン