我经常(每天一整天)打开一个 minicom 终端选项卡,并通过我的 Ubuntu 笔记本电脑在嵌入式 Linux 系统上执行命令。有时我必须执行reboot
命令,有时,我羞于承认,我不小心reboot
在错误的选项卡中执行,而我的笔记本电脑完全按照其设计的方式执行,而无需提出任何问题......
我正在使用 Ubuntu 16.04 LTS 并尝试安装 molly-guard 但没有效果。
100 次中有 99 次我不会搞砸,但我的笔记本电脑需要 10 分钟才能重新启动,而且我执行的reboot
频率足够高,这已经成为一种烦恼。
是否有一些黑魔法,我可以添加到我的自定义终端窗口设置 bash 脚本中,这将使reboot
映射到其他内容(最好仅用于该 bash 会话)?
答案1
在~/.bashrc
笔记本电脑上的文件中(不是在嵌入式机器上),添加以下行:
reboot() { echo "Hey, don't do that!"; }
如果您确实想reboot
在笔记本电脑上运行,则可以通过运行sudo reboot
或来绕过此功能/sbin/reboot
。
或者,你可以让它更友好,如曼0v建议,通过使用:
reboot () { echo 'Reboot? (y/n)' && read x && [[ "$x" == "y" ]] && /sbin/reboot; }
我建议放入这样的函数,~/.bashrc
因为我们希望它在交互式 bash 会话中可用。
选择
人们可能还想考虑一种molly-guard
旨在保护机器免受意外关闭或重新启动的软件包。它可用于德比安并可以通过以下方式安装:
apt-get install molly-guard
答案2
好吧,经过一番尝试后,我找到了一个不错的解决方案:
我在 /usr/sbin/ 中创建了一个名为“reboot”的 bash 文件,然后将完整路径 /usr/sbin/reboot 添加到 $PATH 的前面。
这是脚本:
read -p "Are you sure? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
/sbin/reboot
fi
也许不是最好的解决方案...