第1行,指定哪种shell来解释执行我们的脚本,在linux下一般都推荐bash了。
第3行,脚本的名字,和这个脚本的功能简单的说明,不是必须的,但是推荐不要省略。
第6行,虽然前面带#号,是注释,但要用chkconfig命令注册开机启动服务器的话,该句必不可少,格式也不能错!
# chkconfig: – 99 50 冒号的3个参数的含义:
第一位(X):是指定该脚本在哪个系统启动级别下运行(关于linux启动级别将在别的博文中介绍),比如你需要在3,4,5上运行,那么第二位就设置成345,我这里用的是”-”,代表在2,3,4,5上都运行。
第二位(Y):系统启动时,服务启动顺序。(需要注意的是,有的程序依赖与别的程序的话,启动顺序就要注意了,比如A程序的启动依赖于B程序的启动,那么A程序的这个值一定要比B程序大。)
第三位(Z):系统终止时,服务终止顺序。
当你用chkconfig添加一个自动启动服务后,就会自动在对应的/etc/rc.d/rcX.d/下创建1个指向本启动脚本的软连接文件SYrsyncd,在别的启动级别(比如是N)/etc/rc.d/rcN.d/KZrsyncd
按我设置的具体就会在/etc/rc.d/rc{2,3,4,5}.d/下创建S99rsyncd,在/etc/rc.d/rc{0,1,6}.d/下创建K50rsyncd
第7行,该句也必不可少,理由同上,你程序的描述和间接,而非本启动脚本。
第8行,进程名字,说的是你的程序,而非本启动脚本,该句可省略。
第9行,设定文件路径说明,该句可省略。
第12行,系统提供的函数文件,这里面实现了很多函数和环境变量,比如start的时候,红色的字显示OK就是这个文件的功劳。
第14行,保存退出状态的变量,初始值为0(在linux一般0表示成功,表示OK,非0表示异常,不OK)
第15行,程序rsync所在的路径。
第16行,一个变量,初始值为我们程序的名字。
第17行,配置文件路径及名字。
第19行,程序启动函数,作为一个启动脚本必不可少。
第21,22行,判断程序是否存在,如果不存在则异常退出脚本。
第23,24行,判断设定文件是否存在,如果不存在则异常退出脚本。
第25行,显示信息,这个显示的效果依赖于12行。
第26行,启动程序,用到的这个daemon是个函数,定义在12行的文件中,完整路径的程序rsync和启动参数作为daemon的参数。
第27行,把daemon函数调用的结果保存到RETVAL里。
第28行,判断RETVAL值,如果是0,则表示程序启动成功,创建lock文件。
第30行,本身这段代码也是个函数,所以我们也要返回,返回RETVAL的值。
第33行,关闭程序函数,作为一个启动脚本必不可少。
第35行,显示信息,这个显示的效果依赖于12行。
第36行,关闭程序,killproc也是定义在12行的文件中。
第37行,把killproc函数调用的结果保存到RETVAL里。
第39行,判断RETVAL值,如果是0,则表示程序关闭成功,删除lock文件。
第44~63行,就是一个case语句块,根据用户传入给启动脚本rsyncd的参数,去调用我们定义的start或者stop函数而已。
第57行,查看当前程序的启动状态,status同样定义在12行的文件中。