您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
bash脚本编程之十二(Linux系统裁减之二) 系统函数库-实现mini系统的服务形式重启
发布时间:2018-10-13 14:18:44编辑:雪饮阅读()
(1)将关机和重启模式指向同一个脚本,以模式的值作为参数进行各自的调用
[root@localhost ~]# vi /mount/sysroot/etc/inittab
[root@localhost ~]# cat /mount/sysroot/etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
lo:0:wait:/etc/rc.d/rc 0
l6:6:wait:/etc/rc.d/rc 6
(2)创建我们所需要用到的这个服务形式的脚本
[root@localhost ~]# vi /mount/sysroot/etc/rc.d/rc
[root@localhost ~]# cat /mount/sysroot/etc/rc.d/rc
#!/bin/bash
#
RUNLEVEL=$1
for I in /etc/rc.d/rc$RUNLEVEL.d/K*;do
$I stop
done
for I in /etc/rc.d/rc$RUNLEVEL.d/S*;do
$I start
done
rc脚本解析:
在/etc/rc.d下不同的模式对应不同的文件夹,比如0模式对应rc0.d,6模式对应rc6.d文件夹,以此类推。而每个模式的文件夹中有分为两类文件(脚本)一种是以K开头的,一种是以S开头的。
每个模式中可以有多个K开头的文件,这些文件决定了当前模式下哪些服务是需要关闭的,那么S开头的文件则决定了当前模式下哪些服务是需要开启的。
K开头的文件接受一个stop参数,S开头的接受一个start参数。
(3)创建当前模式所需要的文件以及当前模式其下的每个所需要的文件的依赖文件
当你从宿主系统复制/etc/rc.d/rc6.d到你的对应目录下,发现我们一个服务形式重启的命令仍然无效,此时我们再来查看我们这些文件,原来我们所复制的文件都存在链接,他们所依赖的真正文件在我们的小系统中并没有,所以此时就需要解决其依赖。
复制当前模式所需文件:cp -r /etc/rc.d/rc6.d /mount/sysroot/etc/rc.d/
复制当前模式所需文件的依赖文件:cp -rf /etc/rc.d/init.d/* /mount/sysroot/etc/rc.d/init.d/
(4)回到mini系统测试
回到mini系统中init 6或者reboot就可以成功重启,或许有部分报错,但是都是某些文件夹不存在,几乎不影响重启的。
关键字词:内核,服务,linux