我创建了一个启动脚本来启动/重新启动/停止一组应用程序。我/etc/init.d/functions
在脚本中使用了该库。它在我的系统上运行良好,但它不适用于我的客户;他收到错误:
没有这样的文件或目录 /etc/init.d/functions
现在我不知道我的客户使用哪个Linux发行版。init.d/functions
不同的 Linux 发行版的文件是否不同?如果是这样,我怎样才能找到它?
答案1
它特定于您正在运行的任何发行版。 Debian 和 Ubuntu 有/lib/lsb/init-functions
; SuSE 有/etc/rc.status
;它们都不与其他兼容。 事实上,有些发行版/etc/init.d
根本不使用它,或者以不兼容的方式使用它(我突然想到了 Slackware 和 Arch;还有其他发行版)。
答案2
在CentOS 7 Docker 镜像我必须简单地安装该软件包initscripts
才能安装此脚本:
yum install -y initscripts
(谢谢这个问题关于docker-library
这让我看看这次提交)
答案3
这绝对依赖于分布。您确实需要找出发行版才能编写正确匹配的初始化脚本。
您还可以遵循 LSB(Linux Standard Base)规范,并希望相关发行版也这样做。当前规范规定标准初始化脚本函数可用作/lib/lsb/init-functions
(请参阅此处的文档)。在 Fedora 和其他 Red Hat 相关发行版上,这是由软件包提供的redhat-lsb
,即选修的。
所以,你真的必须弄清楚你的目标是什么。对不起。
答案4
当我迁移到 Ubuntu 时,我错过了这些功能,因此我创建了一个库来重新创建它们的功能:功能。