我试图在启动时显示当前运行级的启动脚本列表。我写了以下代码。
rl=`runlevel | cut -d " " -f2`
ls /etc/rc.d/rc$rl.d/S* | cut -d "/" -f5
sleep 10如果我将这段代码放入rc.local文件中,它就可以工作了。
但是,如果我将其放入rc文件或单独的脚本文件中,abc在/etc/init.d中并通过在运行级目录中创建软链接,则无法工作。
但是,下面这样的简单命令可以在所有方法中运行。
ls /etc/init.d除非一些脚本已经启动,否则运行级或管道之类的命令会不能工作吗?或者还有别的什么吗?
如果我把我的代码放在rc文件中,我的代码会在重新启动之前和之后运行。
rc、rc.local和rc.sysinit文件之间有什么区别呢?此外,我还可以在2、3、4和5个运行级别中找到用于S99local ->的rc.local软链接。
这是否意味着rc.local不会在运行级别1上运行?
发布于 2014-07-02 02:17:46
rc通常不是Linux发行版使用的,而是用于BSD。rc.local可以在启动期间执行附加命令,而不必添加符号链接。rc.sysinit似乎是特定于红帽的,并且在这个过程中很早就被执行了。它作为第一批脚本之一执行,而rc.local则在稍后执行。此外,我还可以在2,3,4和5个运行级别中找到用于S99local ->的rc.local软链接。这是否意味着rc.local不会在运行级别1上运行?
正确,这意味着S99local是指向/etc/rc.local的符号链接,它将是进入运行级2、3、4和5时执行的最后一个脚本之一。它不会在运行级1中执行,因为1是单用户运行级,通常用于救援/维护工作。
发布于 2019-06-09 10:13:39
rc.sysinit是由init进程执行的第一个脚本。此脚本用于初始化系统,其中包括以下内容:
rc.sysinit执行后,运行级脚本将执行(如果默认运行级别为3,则/etc/rc.d/rc3.d/中的脚本)。
运行级脚本执行完毕后,/etc/rc.d/rc.local脚本将执行,如果不想执行整个SysV脚本内容,则可以在该文件中放置额外的启动内容,这涉及创建符号链接和以特定格式命名脚本等。
https://unix.stackexchange.com/questions/140270
复制相似问题