rc、rc.local 和 rc.sysinit 之间有什么区别?

GP9*_*P92 3 init-script sysvinit init.d rc

我试图在启动时显示当前运行级别的启动脚本列表。我写了以下代码。

rl=`runlevel | cut -d " " -f2`
ls /etc/rc.d/rc$rl.d/S* | cut -d "/" -f5
sleep 10
Run Code Online (Sandbox Code Playgroud)

如果我将此代码放入rc.local文件中,它会起作用。

但是,如果我将它放在rc文件或单独的脚本文件abc/etc/init.d并通过在运行级别目录中创​​建软链接,它就不起作用。

但是像下面这样的简单命令能够在所有方法中运行。

ls /etc/init.d
Run Code Online (Sandbox Code Playgroud)

除非某些脚本已启动,否则某些命令(如运行级别或管道)是否无法工作?或者还有别的什么吗?

如果我把我的代码放在rc文件中,我的代码会在重启前后运行。

  • 那么rc,rc.localrc.sysinitfiles之间有什么区别?
  • 我到底需要在哪里编辑这些文件?

我也可以在 2、3、4 和 5 个运行级别中找到S99local-> 软链接rc.local

这是否意味着rc.local不会在运行级别 1 上运行?

Ulr*_*gel 6

  • rc Linux 发行版通常不使用,但在 BSD 中使用
  • rc.local 用于能够在启动期间执行其他命令而无需添加符号链接。
  • rc.sysinit似乎是特定于Red Hat 的,并且在该过程的早期执行。它作为第一个脚本rc.local执行,而稍后执行。

我也可以在 2、3、4 和 5 运行级别中找到 S99local -> rc.local 的软链接。这是否意味着 rc.local 不会在运行级别 1 上运行?

正确的,这意味着S99local这是一个符号链接/etc/rc.local会进入运行级别时最后执行的脚本之一2345。它不会得到执行的运行级别11单用户运行级,通常用于救援/维修工作。