开机时启动软件的正确方法是什么?

开机时启动软件的正确方法是什么?

我太落伍了。自从“#_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 的链接:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

您也可以直接转到源代码,尽管在我看来它不像 Red Hat 的文档那么井然有序:

https://www.freedesktop.org/wiki/Software/systemd/

相关内容