多个 Linux 关机计划及其行为

多个 Linux 关机计划及其行为

如果我多次安排关机,其行为会是什么?例如:

shutdown +20
shutdown +25

第二个关机命令会覆盖第一个关机命令吗?

另外,如果我使用shutdown -c取消关机会怎么样?例如

shutdown +20
shutdown +25
shutdown -c

它会取消所有的停工计划还是只取消最后一个?

答案1

如果您使用系统:

  • 有一个集中管理的关机定时器(由systemd-logind服务)。尝试多次安排关机只会自动取消并用新参数替换超时和操作。

  • shutdown +XX调用 systemd-logind 的 ScheduleShutdown(),设置或调整计时器。

  • shutdown -c调用 systemd-logind 的 CancelScheduledShutdown(),禁用计时器。

如果你使用关闭Linux sysvinit 命令:

  • 该程序使用 pid 文件来确保关机只能安排一次。如果您尝试运行两次,您应该会收到消息“关机:已在运行”。(除非您意外删除了它用于跟踪事物的 pid 文件。)

  • shutdown +XX如果发现后台已有一个“排队关闭”进程正在运行(根据存储在 /var/run/shutdown.pid 中的 PID),则拒绝启动新的“排队关闭”进程。

  • shutdown -c假设您不应该启动多个进程,则会终止一个“排队关闭”进程(其 PID 从 shutdown.pid 中读取)。

相关内容