
我的Linux定时关机实践:从一分钟到精确时刻 最近我在捣鼓家里的那个吃灰的旧笔记本,把它装了个Linux系统,当成我的私人小服务器来跑一些测试脚本,偶尔也下点学习资...
最近我在捣鼓家里的那个吃灰的旧笔记本,把它装了个Linux系统,当成我的私人小服务器来跑一些测试脚本,偶尔也下点学习资料什么的。大家都知道,这玩意儿只要跑起来,那风扇嗷嗷叫,电费也跟着蹭蹭往上涨。白天还好说,晚上睡觉前就得关掉,但有时候跑个大任务,我又不想熬夜守着,想着能不能让它自己时间到了就躺平。
这就引出了今天这个话题:
我心想关机不就是`shutdown`嘛我直接敲了一个`shutdown`。回车!咦?没反应?屏幕上冒出来一堆英文,大意是说,系统会在一分钟后关机,然后下面弹出了一个提示行,让我输入时间或者按`Ctrl+C`取消。
我一看,系统默认就是一分钟后关机!这就是咱们标题里说的“一分钟后关机怎么做”的最简单方式了——什么都不带参数,直接敲:

就是这么简单粗暴,它自己就给我倒计时了。但这个方式有点不灵活,要是我想马上关机,或者想十分钟后关机,那得另外找办法。
要是任务跑完了,我想马上关机,那就要加上`now`,或者用`0`来表示。我更喜欢用`now`,看着痛快。

这里的`-h`就是halt,停机的意思。这么一敲,立马就执行了,不会等。
那如果我想让它一分钟后关机?就是我前面说的直接`shutdown`,但如果我要明确地告诉它“一分钟后”,咱们得用符号“+”加数字,数字就是分钟数。
这就是最标准的“一分钟后关机”的命令了。要是我想定到五分钟后,那就`shutdown +5`。这个方法简单,适合那种“我马上要出门,再给它留点时间”的场景。
前面这些都是延迟多少分钟关机,但我真正的需求是“定点关机”。比如我晚上十点要睡觉了,但我知道那个大文件可能要到晚上十一点半才能下载完。我总不能十点定一个九十分钟的延迟?万一中间出点小岔子,时间算错了,那我不是白等了?
咱们得用“时:分”这种格式来设置精确关机时间。
这样一敲,系统就会在今天的晚上23点30分准时关机。我把命令敲进去,然后直接盖上笔记本,睡觉去!这才叫科学上网,对?
你以为这就完了?太天真了!我告诉你,玩Linux的,最怕的就是手滑。我第一次尝试这个精确时间关机的时候,差点酿成大祸。
那是前几个月的事儿了,我当时在跑一个巨耗时间的数据库导入脚本,预估要跑四个小时,当时是下午三点。我心想这玩意儿得跑老久,晚上我得出去吃饭,回来后也懒得再管它了。于是我就敲了:`shutdown 17:00`。
我本意是想让它晚上五点关机(应该是七点,我记错了)。结果命令敲进去,屏幕上显示“System will be halted at 17:00”!我一看表,等等,现在是三点四十!五点关机,那只剩一个多小时了!我那个数据库脚本根本跑不完!那四个小时的活儿就白干了!
我当时一下就从椅子上跳起来了,心想这下完蛋了。幸好我平时喜欢乱敲命令,知道还有个“取消”指令,那是救命用的!
我赶紧把这个命令敲了进去,回车!屏幕上立马弹出一个信息,大意是说“Shutdown was cancelled.”我当时那个心,砰砰直跳,差点就要给我的旧笔记本跪下了。有了这个`-c`,不管是延迟关机,还是定点关机,只要没到点,就能给你一键取消掉。
我的经验教训是:
好了,今天的分享就到这里。下次咱们再聊聊怎么让它每周自动开机,那就更舒服了。