如果我想使用 telinit 在 30 分钟内关闭系统,我该怎么做?我知道使用关机更简单,但只是了解一下。
答案1
使用at
:
at now + 30 minutes <<<'telinit 0'
或者使用sleep 30m; telinit 0
。
telinit
本身无法做到这一点。您必须结合使用其他工具。at
并且sleep
两者都允许您取消操作(使用atrm
forat
和CtrlCfor other)。
答案2
# telinit 0
运行级别 0 是停机模式。告诉 init 进入运行级别 0 将导致所有进程被终止、文件系统被卸载,并且机器被停机。这是关闭系统完全可以接受的方式。在许多笔记本电脑和现代台式电脑上,这也会导致机器关闭。来源
如果有人对重新启动感到疑惑,请补充:
# telinit 6
运行级别 6 是重启模式。所有进程将被终止,文件系统将被卸载,并且机器将重新启动。这是重启系统的完美方法。来源
要在未来执行某些操作,我们有“at”命令。那就是:
# at now+30 minutes <<<'telinit 0'
或睡觉:
# sleep 1800 && telinit 0
(1800秒)
答案3
作为建议,不要直接回答你的问题。即使at
命令不是默认安装的, sleep
使用 telinit 也是一个很好的选择:如果你想尝试除远程初始化,你可以尝试重启和在:
echo reboot | at now +30 m