urasue 2023年8月7日 20時03分 いつもお世話になっております。 コンテナ内からシャットダウンする方法について教えて下さい。 例えば、GUIをコンテナで動作させ、そこからシャットダウンの要求を行った場合に、 ホスト側のOSまでシャットダウンするには、どのようにすればよいでしょうか。 コメントを投稿するにはログインまたは登録をしてください コメント at_dominique.m… 2023年8月8日 9時47分 urasueさん、 お世話になっています、 マルティネです。 > コンテナ内からシャットダウンする方法について教えて下さい。 いくつかの方法があります。 1. マニュアルの「10.4.10. コンテナからのpoweroffかreboot」に説明されているのは、少し汚いですが使用している busybox init の仕様を利用して、init プロセスをコンテナに見せて kill で制御できます: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro… コンテナにホスト側のプロセスを見えるようになりますので、セキュリティの面ではあまり褒められることではありませんが、すぐにできる簡単な方法です。 2. 制限を与えたくない場合は、podman のフックを使って、コンテナが停止した際に armadillo も停止させることができます。 設定が少しややっこしいですが、以下の手順の後にコンテナをリスタートして、コンテナのメインプロセスが終了する際に armadillo ごと停止するようになります。 armadillo:~# mkdir /etc/atmark/containers/shutdown_hook.d/ armadillo:~# vi /etc/atmark/containers/shutdown_hook.d/hook.json { "version": "1.0.0", "when": { "always": true }, "hook": { "path": "/etc/atmark/containers/shutdown_hook.d/hook.sh" }, "stages": ["poststop"] } armadillo:~# vi /etc/atmark/containers/shutdown_hook.d/hook.sh #!/bin/sh shutdown armadillo:~# chmod +x /etc/atmark/containers/shutdown_hook.d/hook.sh armadillo:~# vi /etc/atmark/containers/shutdown_after_stop.conf ... 省略、以下の行を追加 add_args --hooks-dir=/etc/atmark/containers/shutdown_hook.d/ armadillo:~# persist_file -rv /etc/atmark/containers/ '/etc/atmark/containers/shutdown_after_stop.conf' -> '/mnt/etc/atmark/containers/shutdown_after_stop.conf' mkdir: created directory '/mnt//etc/atmark/containers/shutdown_hook.d' '/etc/atmark/containers/shutdown_hook.d/hook.sh' -> '/mnt/etc/atmark/containers/shutdown_hook.d/hook.sh' '/etc/atmark/containers/shutdown_hook.d/hook.json' -> '/mnt/etc/atmark/containers/shutdown_hook.d/hook.json' ※ Armadillo IoT A6E で power-utils のサービスを使ってもう少し簡単にできますが、Armadillo IoT G4 や Armadillo 640 にはまだインストールしていません。今作業中のパッケージングの改善ができたら標準にインストールしようと考えています。 ご不明な点があればまた聞いてください。 よろしくお願いします。 コメントを投稿するにはログインまたは登録をしてください urasue 2023年8月10日 10時52分 マルティネさん お世話になっております。 urasueです。 マニュアルに記載がありましたね。失礼いたしました。 1の方法で希望の動作になりました。 ありがとうございました。 コメントを投稿するにはログインまたは登録をしてください
at_dominique.m… 2023年8月8日 9時47分 urasueさん、 お世話になっています、 マルティネです。 > コンテナ内からシャットダウンする方法について教えて下さい。 いくつかの方法があります。 1. マニュアルの「10.4.10. コンテナからのpoweroffかreboot」に説明されているのは、少し汚いですが使用している busybox init の仕様を利用して、init プロセスをコンテナに見せて kill で制御できます: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro… コンテナにホスト側のプロセスを見えるようになりますので、セキュリティの面ではあまり褒められることではありませんが、すぐにできる簡単な方法です。 2. 制限を与えたくない場合は、podman のフックを使って、コンテナが停止した際に armadillo も停止させることができます。 設定が少しややっこしいですが、以下の手順の後にコンテナをリスタートして、コンテナのメインプロセスが終了する際に armadillo ごと停止するようになります。 armadillo:~# mkdir /etc/atmark/containers/shutdown_hook.d/ armadillo:~# vi /etc/atmark/containers/shutdown_hook.d/hook.json { "version": "1.0.0", "when": { "always": true }, "hook": { "path": "/etc/atmark/containers/shutdown_hook.d/hook.sh" }, "stages": ["poststop"] } armadillo:~# vi /etc/atmark/containers/shutdown_hook.d/hook.sh #!/bin/sh shutdown armadillo:~# chmod +x /etc/atmark/containers/shutdown_hook.d/hook.sh armadillo:~# vi /etc/atmark/containers/shutdown_after_stop.conf ... 省略、以下の行を追加 add_args --hooks-dir=/etc/atmark/containers/shutdown_hook.d/ armadillo:~# persist_file -rv /etc/atmark/containers/ '/etc/atmark/containers/shutdown_after_stop.conf' -> '/mnt/etc/atmark/containers/shutdown_after_stop.conf' mkdir: created directory '/mnt//etc/atmark/containers/shutdown_hook.d' '/etc/atmark/containers/shutdown_hook.d/hook.sh' -> '/mnt/etc/atmark/containers/shutdown_hook.d/hook.sh' '/etc/atmark/containers/shutdown_hook.d/hook.json' -> '/mnt/etc/atmark/containers/shutdown_hook.d/hook.json' ※ Armadillo IoT A6E で power-utils のサービスを使ってもう少し簡単にできますが、Armadillo IoT G4 や Armadillo 640 にはまだインストールしていません。今作業中のパッケージングの改善ができたら標準にインストールしようと考えています。 ご不明な点があればまた聞いてください。 よろしくお願いします。 コメントを投稿するにはログインまたは登録をしてください
urasue 2023年8月10日 10時52分 マルティネさん お世話になっております。 urasueです。 マニュアルに記載がありましたね。失礼いたしました。 1の方法で希望の動作になりました。 ありがとうございました。 コメントを投稿するにはログインまたは登録をしてください
at_dominique.m…
2023年8月8日 9時47分
urasueさん、
お世話になっています、
マルティネです。
> コンテナ内からシャットダウンする方法について教えて下さい。
いくつかの方法があります。
1. マニュアルの「10.4.10. コンテナからのpoweroffかreboot」に説明されているのは、少し汚いですが使用している busybox init の仕様を利用して、init プロセスをコンテナに見せて kill で制御できます:
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
コンテナにホスト側のプロセスを見えるようになりますので、セキュリティの面ではあまり褒められることではありませんが、すぐにできる簡単な方法です。
2. 制限を与えたくない場合は、podman のフックを使って、コンテナが停止した際に armadillo も停止させることができます。
設定が少しややっこしいですが、以下の手順の後にコンテナをリスタートして、コンテナのメインプロセスが終了する際に armadillo ごと停止するようになります。
※ Armadillo IoT A6E で power-utils のサービスを使ってもう少し簡単にできますが、Armadillo IoT G4 や Armadillo 640 にはまだインストールしていません。今作業中のパッケージングの改善ができたら標準にインストールしようと考えています。
ご不明な点があればまた聞いてください。
よろしくお願いします。