我正在尝试让自定义服务在重新启动时关闭应用程序,我可以让服务文件正常工作到某个点,即我的自定义服务需要在 network.target 脱机和 NFS 之前关闭变为卸载。我尝试将 network.target 添加到单元文件中的 Before 行。这是我目前所拥有的一切似乎都在工作,除了需要访问网络来发出它的命令才能成功完成。到目前为止,这是我的服务文件:
[Unit]
Description=Kubernetes startup and shutdown
DefaultDependencies=no
Before=remote-fs.target network.target reboot.target shutdown.target halt.target
[Service]
Type=forking
ExecStart=/bin/bash -c '/root/kube-stop.sh'
RemainAfterExit=yes
[Install]
WantedBy=halt.target shutdown.target reboot.target
似乎我能够通过在“Before”语句中使用 sshd 服务并删除“RemainAfterExit”来开始朝着正确的方向前进,因为这似乎更适合一次性服务类型:
[Unit]
Description=Kubernetes startup and shutdown
DefaultDependencies=no
Before=sshd.service
[Service]
Type=forking
ExecStart=/bin/bash -c '/root/kube-stop.sh'
[Install]
WantedBy=halt.target shutdown.target reboot.target