Google Container Optimized OS 如何处理计划关闭?
How does Google Container Optimized OS handle a scheduled shutdown?
我正在 Google Cloud 上使用 Container Optimized OS,发现 'Auto Update' 功能没有 apply the updates until the system is restarted,并且不提供任何应用更新后安排重新启动的功能。
我正在编写一个简单的启动脚本,在需要重新启动时安排关机,本质上:
#!/usr/bin/env sh
update_engine_client --block_until_reboot_is_needed
shutdown -r 02:00
我的问题是:如何确定是否已安排关机?到目前为止,我已经尝试了三种方法,但在 OS:
中不起作用
$ ps -ef | grep shutdown
- 没有关机过程
$ systemctl status systemd-shutdownd.service
- Unit systemd-shutdownd.service could not be found.
cat /run/systemd/shutdown/scheduled
- 未找到文件
关于此 OS 的文档及其所依据的内容很少。什么决定了如何安排关机,以及 COS 如何处理它?
在 Container-Optimized OS 中,following command will display pending shutdown information in epoch time:
$ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
我很好奇为什么 Google 选择使用 busctl
而不是 systemd
- 我不熟悉 busctl
并且不得不阅读它以了解什么命令正在执行 - busctl
man page
示例:
$ sudo shutdown -r 02:00
Shutdown scheduled for Fri 2020-07-17 02:00:00 UTC, use 'shutdown -c' to cancel.
$ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
(st) "reboot" 1594951200000000
$ sudo shutdown -c
busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
(st) "" 0
关于您的问题:如何判断是否已安排关机?
没有默认配置的关机任务,你必须配置它(每天,每周,每月等),更简单的方法是使用“crond”(OS Linux task scheduler) 请按照此 guide 了解如何在 cron 中配置作业(COS 通常使用 Ubuntu OS)。
根据此 GCP guide:“Container-Optimized OS 实例配置为在后台自动下载每周更新;只需重新启动即可使用最新更新。”
因此,我建议您每周在非高峰生产日(周六或周日)配置您的 cron 作业。
如果您还有其他问题,请告诉我。
我正在 Google Cloud 上使用 Container Optimized OS,发现 'Auto Update' 功能没有 apply the updates until the system is restarted,并且不提供任何应用更新后安排重新启动的功能。
我正在编写一个简单的启动脚本,在需要重新启动时安排关机,本质上:
#!/usr/bin/env sh
update_engine_client --block_until_reboot_is_needed
shutdown -r 02:00
我的问题是:如何确定是否已安排关机?到目前为止,我已经尝试了三种方法,但在 OS:
中不起作用$ ps -ef | grep shutdown
- 没有关机过程$ systemctl status systemd-shutdownd.service
-Unit systemd-shutdownd.service could not be found.
cat /run/systemd/shutdown/scheduled
- 未找到文件
关于此 OS 的文档及其所依据的内容很少。什么决定了如何安排关机,以及 COS 如何处理它?
在 Container-Optimized OS 中,following command will display pending shutdown information in epoch time:
$ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
我很好奇为什么 Google 选择使用 busctl
而不是 systemd
- 我不熟悉 busctl
并且不得不阅读它以了解什么命令正在执行 - busctl
man page
示例:
$ sudo shutdown -r 02:00
Shutdown scheduled for Fri 2020-07-17 02:00:00 UTC, use 'shutdown -c' to cancel.
$ busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
(st) "reboot" 1594951200000000
$ sudo shutdown -c
busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
(st) "" 0
关于您的问题:如何判断是否已安排关机?
没有默认配置的关机任务,你必须配置它(每天,每周,每月等),更简单的方法是使用“crond”(OS Linux task scheduler) 请按照此 guide 了解如何在 cron 中配置作业(COS 通常使用 Ubuntu OS)。
根据此 GCP guide:“Container-Optimized OS 实例配置为在后台自动下载每周更新;只需重新启动即可使用最新更新。”
因此,我建议您每周在非高峰生产日(周六或周日)配置您的 cron 作业。
如果您还有其他问题,请告诉我。