httpd系统自带启动脚本详解 - Linux系统
|
市面上有很多关于脚本的书籍和教程,好是好,可写的越来越像编程书。其中不仅有算法的介绍,比如递归,冒泡法,高效,冗余。还伴有非常高深的案例,看的是云里雾里,头昏脑胀。看完以后感觉如下,书是好书,例子是好例子,算法更是好算法,可多少有些脱离实际,提高的可以,干活的不成。对于没有任何程序开发基础的同志来说更是如此。
可那些书就不看了吗?答案是否定的,这些书上所撰写的内容虽然晦涩可都是好东西。但攘外必先安内,在看这些书之前,我认为,更重要的应该先要搞清楚系统本身的脚本。作为发行版系统中使用的脚本,肯定都是经典中的经典,除了能够帮助我们更好的编写脚本以外,还能使我们理清linux系统服务的运行方法,更重要的是,在发生错误的时候可以让我们更快的锁定问题。可谓是一举多得。下面就是对/etc/init.d/httpd脚本的解释,不详之处还望大家谅解,欢迎各位批评指教。 #!/bin/bash # # httpd Startup script for the Apache HTTP Server # # chkconfig: - 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI. # processname: httpd # config: /etc/httpd/conf/httpd.conf # config: /etc/sysconfig/httpd # pidfile: /var/run/httpd.pid # Source function library. #以上皆为注释,可以忽略。 . /etc/rc.d/init.d/functions #"."等价于source,在这里等同于C语言中的include。讲function中函数及变量的定义导入到当前脚本的执行环境中。 if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi #如果httpd为文件,那么也将其导入到当前脚本执行环境中。 HTTPD_LANG=${HTTPD_LANG-"C"} #如果变量HTTPD_LANG未定义,那么将其定义为"C",即英文 INITLOG_ARGS="" apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/sbin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} #定义一系列变量,用于后面的执行。 RETVAL=0 #定义全局命令返回变量 check13 () { CONFFILE=/etc/httpd/conf/httpd.conf GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|" GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|" GONE="${GONE}AccessConfig|ResourceConfig)" if LANG=C grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then echo echo 1>&2 " Apache 1.3 configuration directives found" echo 1>&2 " please read /usr/share/doc/httpd-2.0.52/migration.html" failure "Apache 1.3 config directives test" echo exit 1 fi }
(编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

