我有一台 kiosk Linux Debian 计算机。
这台计算机没有物理电源按钮,也没有键盘。
我希望允许用户停止和/或重新启动这台计算机而不损坏文件系统,同时仍然能够使用 ssh 远程执行此操作。
我的想法:
- 在图形应用程序中创建停止/重新启动按钮
- 当按下按钮时,计算机启动关机
- 当计算机准备关闭电源时(每个文件系统都已卸载或只读),会显示一条消息:“您现在可以拔掉电源线,或等待 30 秒自动重新启动”
- 使用 ssh 远程执行此操作时,无需亲自在场即可完成重新启动
想法:
- 依赖于每个文件系统处于稳定状态后触发的 systemd 功能。哪一个?
- 当按下软件按钮时使根分区只读,以便可以安全地关闭计算机。但这需要不那么容易的改变
- 依赖 GRUB2:从软件启动的关机和重新启动都会导致重新启动计算机,并使用特殊的 GRUB2 条目显示消息并等待密钥(理想情况下,当使用 ssh 完成时,会调用常规 GRUB2 条目,从而允许立即启动。至于电源恢复时的冷启动)
如果不清楚,请随时提问。
答案1
您可以依靠 GRUB 超时来允许用户拔掉系统电源
在启动默认条目之前/etc/default/grub
设置GRUB_TIMEOUT=30
30 秒超时,以允许用户在 linux 启动之前断开电源。
在 GRUB 菜单中等待超时时,整个系统处于只读状态,因此断开电源不会有任何损害。
Grub 还允许您显示背景图像,例如可以显示巨大的粗体文本,指示用户可以安全地断开电源。
优点:
- 非常容易实施
- 升级系统的时候应该不会崩溃
- 可以轻松地向用户提供有关做什么的指示。
- 断电时系统损坏的风险最小
- 标准
reboot
和poweroff
命令就像在正常系统上一样工作。
缺点:
- 每次开机延迟30秒