【问题标题】:Shutdown Service On GCP computeGCP 计算上的关闭服务
【发布时间】:2020-11-11 14:18:21
【问题描述】:

我们正在尝试运行服务,同时我们从 gcp 计算中删除我们的实例作为关闭服务,如下所示:-

[Unit]
Description=Unconfig service before shutdown
Wants=network-online.target rsyslog.service
After=network-online.target rsyslog.service

[Service]
Type=oneshot
ExecStart=/bin/true
RemainAfterExit=true
#this service does nothing on satrt, and runs shutdown scripts on stop
ExecStop=/bin/bash /tmp/unconfig.sh
TimeoutStopSec=0
KillMode=process
StandardOutput=jorunal+console

[install]
WantedBy=multi-user.target

我们在 unconfig.sh 脚本文件中使用主机名。我们在启动时启用了上述服务。在删除 GCP 实例(rhel)时,我们的上述服务运行但脚本文件没有成功执行。它试图连接到主机名,但由于会话断开连接而无法做到这一点。对此的任何帮助将不胜感激。

【问题讨论】:

  • 您好。为什么是服务? SystemD 旨在保持进程处于活动状态,但如果您计划在停止进程期间在 VM 之前运行脚本,则可以运行 shutdown script
  • 我们不允许使用关闭脚本,这就是我们使用服务的原因。

标签: google-cloud-platform service rhel7


【解决方案1】:

freedesktop.org > Soft > systemd > Running Services After the Network is up > Concepts in systemd:

network-online.target强烈建议不要过于随意地引入此目标

network.target。它的主要目的是在关机时正确排序:因为 systemd 中的单位关机排序 是启动顺序的逆序,任何为顺序的单位 After=network.target 可以确定它在 如果系统关闭,网络将关闭。这允许 服务在关闭之前干净地终止连接,而不是 突然失去正在进行的连接的连接,离开他们 处于未定义状态。

freedesktop.org > Soft > systemd > systemd.special:

network-online.target。请注意,此单元仅在原始系统启动逻辑期间有用。系统完成后 启动时,它将不再跟踪系统的在线状态。 因此,它不能用作网络连接监视器的概念, 这纯粹是一个一次性系统启动的概念。
network.target。关机时,network.target 之后订购的单元将在网络之前停止。因此是 在编写需要网络访问的服务文件时很有用 关机。

如果目标是让一个单元在网络堆栈停止之前优雅地停止,则应使用network.target 作为依赖项。因此问题中的配置应更改为

After=network.target  
ExecStop=/tmp/unconfig.sh

另一种方法是使用 Google Compute Engine 关闭脚本,正如 Armando Cuevas 所建议的那样。一个优点是关闭脚本不必是操作系统映像的一部分。相反,它存储为项目或实例元数据,因此是集中管理的。虽然应该考虑现有的Limitations 的 GCE 关闭脚本:

Compute Engine 仅在尽力而为的情况下执行关闭脚本 基础。在极少数情况下,Compute Engine 无法保证 关闭脚本将完成。

【讨论】:

  • 感谢您的回复,我们不允许为此使用关机脚本。这就是为什么决定为此目的使用服务。此外,我们面临着在端口 4444 上运行的进程的问题。在 unconfig.sh 中,我们正在尝试一些连接命令来连接该端口。但是,当 gcp 实例被删除时,我们的服务会运行,但是当它尝试连接该端口时却无法这样做。似乎在端口 4444 上运行的那个进程被杀死了。我们希望保持这个过程,直到我们的脚本成功执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 2023-03-23
  • 2021-08-16
  • 2012-01-23
  • 2021-10-10
  • 2017-12-10
相关资源
最近更新 更多