在linux系统中设置定时关机可以通过系统自带的shutdown命令和cron定时任务服务实现,不同方法适用于不同的使用场景,用户可以根据自身需求选择合适的配置方式。

使用shutdown命令设置临时定时关机
shutdown是linux系统自带的关机命令,支持指定时间执行关机操作,适合设置单次、临时的定时关机任务,不需要额外配置服务。
shutdown命令常用参数说明
- -h:关机后停止系统,是设置关机时的常用参数
- 时间参数:支持绝对时间(如22:30)和相对时间(如+30表示30分钟后)
- 消息内容:可选参数,用于向当前登录用户发送关机提示
具体操作示例
如果要设置30分钟后自动关机,并向登录用户发送提示消息,可以执行以下命令:
# 30分钟后关机,提示消息为"系统将在30分钟后关机" sudo shutdown -h +30 "系统将在30分钟后关机"
如果要设置当天22点30分自动关机,命令如下:
# 设置22:30关机 sudo shutdown -h 22:30
如果需要取消已经设置的定时关机任务,可以执行以下命令:
# 取消待执行的关机任务 sudo shutdown -c
使用cron服务设置周期性定时关机
如果需要设置每天、每周固定时间自动关机的周期性任务,使用cron定时任务服务会更合适,配置后可以长期生效,不需要每次手动设置。
检查cron服务状态
首先确认cron服务是否已经运行,执行以下命令查看状态:
# 查看cron服务运行状态 systemctl status cron
如果服务未运行,执行以下命令启动并设置开机自启:
# 启动cron服务 sudo systemctl start cron # 设置cron服务开机自启 sudo systemctl enable cron
配置cron定时关机任务
执行以下命令编辑当前用户的cron任务列表:
# 编辑当前用户的cron任务 crontab -e
在打开的编辑器中添加以下格式的定时任务,以每天晚上23点自动关机为例:
# 每天23:00执行关机命令,>>用于把执行日志输出到指定文件 0 23 * * * /sbin/shutdown -h now >> /var/log/shutdown_cron.log 2>&1
cron任务的时间格式说明如下,五个*分别代表分钟、小时、日、月、星期:
| 位置 | 含义 | 取值范围 |
|---|---|---|
| 第一个* | 分钟 | 0-59 |
| 第二个* | 小时 | 0-23 |
| 第三个* | 日 | 1-31 |
| 第四个* | 月 | 1-12 |
| 第五个* | 星期 | 0-7(0和7都代表星期日) |
查看和删除cron任务
如果需要查看当前用户配置的所有cron任务,执行以下命令:
# 查看当前用户的cron任务列表 crontab -l
如果需要删除所有cron任务,执行以下命令:
# 删除当前用户的所有cron任务 crontab -r
注意事项
- 执行shutdown命令和配置cron任务都需要有足够的权限,普通用户需要加sudo前缀
- cron任务中的命令最好使用绝对路径,避免因为环境变量问题导致命令执行失败
- 如果系统中有其他用户正在操作,设置定时关机前最好提前告知,避免数据丢失
- 测试cron任务时可以先设置几分钟后的时间,确认任务能正常执行后再调整为正式的时间