在Linux中,有没有一种方法可以知道init脚本存储在哪里?

4

正如标题中所提到的,我正在寻找一个脚本/命令来查找正确的目录(通常是/etc/init.d/etc/rc.d/init.d)。 目前我正在使用

    dirname `find / -name acpid 2> /dev/null | grep /etc/`

但有时我会得到多个结果(可能其中一些结果是链接)。有什么建议吗?

我使用acpid,因为这是一个应该在几乎每个不陈旧的发行版中都存在的脚本。如果有更好的脚本建议,请告诉我,谢谢 :)


你使用的是哪个Linux发行版? - Tyler Jandreau
我正在使用Ubuntu、Debian、RedHat Enterprise、Fedora、CentOS、SuSE等其他发行版。 - l3golas
1
在多个位置出现相同的脚本是完全合法和正常的,单个脚本可以在启动和关闭的各个阶段使用。它们可以是符号链接或硬链接。并且在活动的 rc.N(对于 n 在 0..6 中)目录中的名称可以加上数字前缀,以便按顺序执行它们-至少在我曾经使用过的史前系统中是这样的。 - Jonathan Leffler
谢谢Jonathan。你说的很正常,因为在每个运行级别(由rcN.d类型的目录标识)中,都有一个脚本来启动或停止每个init脚本。无论如何,我只是在寻找脚本,而不是指向它的链接。所以问题又来了:同一个脚本(而不是链接)出现在多个目录中是否正常?哪一个才是正确的? - l3golas
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

我认为你的方法非常好,因为启动脚本的位置是与发行版有关的。只需在命令中添加-type f选项来排除链接即可。

INITDIR=`find / -type f -name acpid 2> /dev/null | grep /etc/`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,