让Linux系统启动过程自动运行自己编写的脚本

时间:2022-02-01 02:55:22

在Linux系统,/etc路径下,一般有以下目录:
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d

在系统启动的过程中,会按照rc0.d~rc6.d的顺序执行这些目录下的脚本,如果想要系统启动过程中执行自己编写的脚本,只需要将脚本名字改为Sxxx.sh,放到上面的任意目录下即可。

之前在这几篇文章中:
http://blog.csdn.net/keheinash/article/details/50641090
http://blog.csdn.net/keheinash/article/details/50642822
http://blog.csdn.net/keheinash/article/details/50674428
描述了利用脚本设置NFS共享目录以及对特定进程进行内存使用监测的实现。结合上面系统启动过程自动执行脚本的方法,我们可以让系统在启动时自动运行几个脚本。

/home/root/NetWorkCP.sh & # NetWorkCP实现设置NFS共享目录的功能
/home/root/monitor.sh & # monitor实现监测特定进程内存使用情况的功能

将这两条命令直接写在脚本中,并将脚本命名为Sxxx.sh,放到/etc/rc#.d下即可。

&代表使用后台执行的方式运行,采用后台运行/home/root下的两个脚本的方式是因为Sxxx.sh在OS启动过程中执行,如果运行的两个脚本发生问题,没有办法完成执行,会导致内核无法加载完成。这也是为什么不把这两个脚本直接放到/etc/rc#.d下的原因,如果脚本的执行出错,发生了阻塞,会导致系统无法启动成功。

注意:最好是把脚本放到/etc/rc6.d下,因为你的脚本的某些操作(如上面例子里的设置NFS,涉及网卡的操作),可能需要系统在启动过程中加载了某些模块后才能起作用。如果放在比较早执行的目录下,可能会出现执行失败的情况。