在执行“重新启动”之前询问?

在执行“重新启动”之前询问?

我经常(每天一整天)打开一个 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/ 中创建了一个名为“rebo​​ot”的 bash 文件,然后将完整路径 /usr/sbin/reboot 添加到 $PATH 的前面。

这是脚本:

read -p "Are you sure? " -n 1 -r
echo    
if [[ $REPLY =~ ^[Yy]$ ]]
then
    /sbin/reboot
fi

也许不是最好的解决方案...

相关内容