必须把它关掉 Linux 系统却需要等待一个进程完成?
你不必无所事事地等待。 您可以安排关闭:
shutdown +N
这样,N分钟后系统就会关闭。 您还可以安排在预定义时间关闭:
shutdown 15:30
上面的命令将其关闭 Linux 下午 3:30 系统
还有其他方法可以关闭此功能 Linux 系统在未来的某个时候。 实际上, 您还可以使用 crontab 设置定期关闭计划。
我将在本教程中向您展示所有这些内容。
安排一次性关闭 Linux
shutdown 命令允许您安排在 X 分钟后或特定时间关闭。
要在任意分钟后关闭,您可以通过添加 +minutes
到命令。
shutdown +15
上述命令安排 15 分钟后关闭。
如果你想在 16:45 关闭系统,你可以添加时间戳(24 小时格式)而不是计算分钟数 🙂
shutdown 16:45
查看计划关闭
如果您想检查是否有任何计划的关闭,可以使用 --show
一天。
shutdown --show
取消预定的关闭
你改变了主意并且你不想要它
要取消关闭,请使用以下命令:
shutdown -c
奖励:向登录用户发送警报
要向每个登录用户发送消息,您可以使用最后一个选项:消息。 它使用 Wall 将消息发送给登录到 TTY 界面的任何用户。
这里有一个 example:
sudo shutdown +10 "Save your work! This system will shut down in 10 min!"
要了解 shutdown 命令的其他选项,请访问本文以了解更多详细信息:
将关闭安排为例行公事
常规系统关闭可以通过两种方式完成。 你可以使用旧的好 定时任务 或较新的 系统定时器。
使用 cron 作业
Cron 作业以调度任务而闻名。 它很受欢迎并且具有以下特点 Linux 许久。 其特殊的语法使其成为一个有趣的概念。 查看详细指南。
每个用户都有一个 cron 文件,可用于为用户安排本地操作。 但是,对于系统范围的应用程序(例如关闭),您必须使用 root 用户的文件。
通常 cron 文件包含描述语法和其他内容的文本(尤其是在 Debian-based 发行版),但如果没有也不必担心。
cron 文件中每一行的语法解释如下:
每个字段可以包含如上所述的某些值。 星号示例可用于表示“全部”,表示该字段中的所有值。 为了
如果小时参数为 *,则作业全天每小时运行一次。
sudo crontab -e
首先,打开root用户的cron文件,如下:
该系统预计每天晚上 10:30 关闭。 请注意,时间必须采用 24 小时格式 – 22:30(并且分钟在小时之前)。
要每天(以及一年中的每个月)关闭系统,请在文件末尾添加以下行: | 分钟 | 小时 | 该月的某一天 | 一年中的月份 | 工作日 |
---|---|---|---|---|---|
命令 | 30 | 22 | * | * | /sbin/shutdown now |
* /sbin/shutdown now
这意味着:“在所有日期和月份的 22 小时第 30 分钟运行该命令。”
关闭系统”。
您可以保存文件并退出。 cron 作业会自动更新并在每天晚上 10:00 运行。
使用 systemd 定时器 .timer
Systemd 计时器很有趣。 它们被认为是 cron 作业的绝佳替代品! 这些文件以
可以控制服务或事件的扩展。
有两种类型的计时器:实时(在特定时间以该频率运行,如 cron 作业 – 取决于时钟)和整体(启动时间是可变的,如启动时间等)。
要在特定时间点关闭系统,应使用实时计时器,因为它们恰好在指定的时间戳执行操作。
关机定时器
sudo vim /etc/systemd/system/shutdown.timer
首先创建一个定时器文件:
您可以将此代码放入计时器文件中: 这 单元
该部分包含计时器的属性(描述、所需服务等)。
- 计时器部分告诉您计时器何时以及如何运行。 在日历上
– 声明实时计时器的标签,其中调度基于日历。year-month-day hour:minute:second
句法:*-*-*
这里计时器每天运行( - 即每年、每月或每天)的 22:30(或 22:30) 执着的
– 定义计时器是否应在重新启动后持续存在(true 则在重新启动后启用计时器) 这 安装
- 本节描述了如何激活计时器。 通缉者
timers.target
– 用于指示不同的目的地(默认、计时器、紧急情况等),它们只是一组分组服务。 既然它是一个定时器,我们就使用
。
关机服务
sudo vim /etc/systemd/system/shutdown.service
定时器通过触发服务来工作。 需要系统关闭服务。 因此创建一个同名的服务文件:
将以下内容添加到文件中,保存并退出: 这 服务
- 本节解释了服务的行为。 类型
oneshot
– 描述服务类型( - 表示运行一次然后停止的服务)。 执行启动
/sbin/shutdown now
– 定义服务启动时要执行的命令(这里是系统关闭命令:
)
sudo systemctl reload-daemon
创建两个文件后重新加载守护进程:
激活计时器
最后,转到终端并使用以下命令启用计时器:
systemctl list-timers
启用并启动定时器后,您需要在提供的定时器列表中看到它
突出显示表示计时器已启动(触发服务)并且还剩指定的运行时间。
尝试了解 systemd 服务如何工作。 将文件通读两遍; 您也可以了解各个部分的作用。 一旦掌握了它的窍门,使用计时器就会非常有趣。
我希望您发现所有方法都很有用。 如果您有任何疑问,请随时在评论部分表达您的疑问。