我有一个应用程序在 Fedora 33 内的两个容器中运行。容器需要以特定方式停止,该方式已经有一个脚本。为了确保容器在关闭前始终正确且按顺序停止,我想自定义系统的关闭过程。我发现这似乎表明我不能在开始关闭过程之前直接停止我的容器(因为 systemctl 会并行停止所有内容)。但是,我注意到,对于某些用户,shutdown 命令是 /usr/sbin/shutdown 和 root 用户的 /sbin/shutdown 的符号链接,两者都指向 /bin/systemctl。
我可以简单地断开两个链接并用脚本替换它们,例如:
#!/bin/bash
echo "doing stuff..."
/bin/systemctl
或者这会在未来产生麻烦吗?如果是,是否有更优雅的方法来保证每次调用关闭命令时我的容器总是在关闭之前停止?
你可以这样做,但是……你不应该这样做。由于您使用的是 Fedora Linux 33,因此无论如何您都不会获得安全更新,但如果您这样做了,它们很可能会破坏 ypur kludge。
相反,我建议使用 systemd 单元来管理您的容器(即为
.service
每个容器制作文件),然后您可以使用普通After
或Requires
信息来表达依赖关系。