我太落伍了。自从“#_something”时代以来,我就没再设计过系统启动/停止引导脚本。
我有一个基于 docker compose 的应用程序,需要在启动时启动并在关机前停止。
现在被认为是执行此操作的正确方法是:sysctl,systemctl,service 或其他。
因为这依赖于docker的运行,而docker的运行又依赖于其他的东西。我在想systemctl
目前在启动时启动软件的正确方法是什么?您能推荐一些好的文档和示例吗?
我实际使用的是 RHEL 7.6+ 和 Unbuntu 18.4+,但我希望支持最广泛的 Linux/Unix 平台
答案1
RHEL 7 和 Ubuntu 18.04 都使用 systemd,现在所有主流发行版基本上都使用 systemd。您需要为您的软件编写一个 systemd 单元文件。您提到了“service”命令,这是 Red Hat 遗留的东西,现在在几乎所有情况下,它都只是重定向到 systemctl (systemd)。您还提到了“sysctl”,但它会调整内核参数,与本主题无关。
Red Hat 有关于 systemd 的良好文档,包括创建单元文件,这里是 RHEL 7 的链接:
您也可以直接转到源代码,尽管在我看来它不像 Red Hat 的文档那么井然有序: