linux可运行的shell脚本与设置开机服务启动

软链接:

    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    2.软链接可以 跨文件系统 ,硬链接不可以
    3.软链接可以对一个不存在的文件名进行链接
    4.软链接可以对目录进行链接

硬链接:

    1.硬链接,以文件副本的形式存在。但不占用实际空间。
    2.不允许给目录创建硬链接
    3.硬链接只有在同一个文件系统中才能创建


第一步:我们在/etc/init.d或者/etc/rc.d/init.d下新建一个文件test.sh(需要在root权限下操作)(/etc/init.d是/etc/rc.d/init.d的一个软连接)

第二步:编辑脚本保存退出之后,给其增加可执行权限

第三步:(两种方式:手动添加服务+chkconfig创建服务    原理都是创建软连接)

脚本的前三行如下:(脚本前面三行格式固定)

#!/bin/sh
#chkconfig: 2345 80 90
#description:test2

 

第一行,告诉系统使用的shell,所有的shell脚本都是这样。
第 二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80test2的文件连接,连接到/etc/rc.d/init.d目录下的的test2脚本。第一个字符是S,系统在启动的时候,运行脚 本test2,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90test2的 文件连接,第一个字符为K,系统在关闭系统的时候,会运行test2,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig –add test2时,会报错。

 

查看 /etc/rc2.d目录下结构:(S80test2)

《linux可运行的shell脚本与设置开机服务启动》

S:代表启动服务(运行脚本传入start参数)

K:关闭服务(运行脚本传入stop参数)

80; 运行级别,越小越优先运行,优先级相同的时候按创建时间启动。

 

查看 /etc/rc3.d目录下结构:(S80test2)

《linux可运行的shell脚本与设置开机服务启动》

查看 /etc/rc0.d目录下结构:(K90test2)

《linux可运行的shell脚本与设置开机服务启动》

 

2.手动添加服务:

在rc0.d-rc6.d目录下分别创建文件连接。

ln -s /etc/rc.d/init.d/test.sh /etc/rc2.d/S01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc4.d/S01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc3.d/S01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc5.d/S01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc1.d/K01test
ln -s /etc/rc.d/init.d/test.sh /etc/rcS.d/S01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc0.d/K01test
ln -s /etc/rc.d/init.d/test.sh /etc/rc6.d/K01test

Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策

/etc/init.d/其实是/etc/rc.d/init.d/的软连接。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注