我是编写这些服务文件的新手,并且通过关注堆栈和 unix 溢出中的几个博客,我编写了一个 systemd 服务文件。
我有一个脚本需要在关闭时运行,并且需要运行 docker 守护进程。服务文件看起来像这样
[Unit]
Description=Shutdown script
Before=shutdown.target
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=/path/to/script
[Install]
WantedBy=multi-user.target
我正在尝试通过在 shell 脚本中添加以下内容,在实例的启动脚本中自动创建/启用上述服务(运行脚本)
chmod +x /path/to/script
if [ ! -f "/etc/systemd/system/path.service" ]; then
cp file/path.service /etc/systemd/system/path.service
systemctl daemon-reload
fi
systemctl enable path.service
我希望它在每次关闭时运行,但它在实例启动时运行。我在上面的服务文件中犯了什么错误吗?
答案1
[Install]
WantedBy=multi-user.target
不在关机时运行服务,而是在启动时运行服务。你要
[Install]
WantedBy=shutdown.target