23 Jun 2016
#!/bin/bash # chkconfig: - 30 21 # description: http service. ##上面三行 # 1是为了声明执行的shell是什么 # 2是声明chkconfig的runlevel、启动顺序、关闭顺序 # 3是描述 # Source Function Library . /etc/init.d/functions # Nginx Settings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo -n $"Starting $prog: " mkdir -p /dev/shm/nginx_temp daemon $NGINX_SBIN -c $NGINX_CONF RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $NGINX_PID $NGINX_SBIN -TERM rm -rf /dev/shm/nginx_temp RETVAL=$? echo return $RETVAL } reload(){ echo -n $"Reloading $prog: " killproc -p $NGINX_PID $NGINX_SBIN -HUP RETVAL=$? echo return $RETVAL } restart(){ stop start } configtest(){ $NGINX_SBIN -c $NGINX_CONF -t return 0 } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo $"Usage: $0 {start|stop|reload|restart|configtest}" RETVAL=1 esac exit $RETVAL ## 退出的时候返回执行状态码
echo test test [root@web03 ~]# echo -n test test[root@web03 ~]# # -n参数会让输出的字符不自动换行,所以[root@web03 ~] #紧随其后 echo -ne "test\n" test ## -e参数可以让echo识别换行符,这样就可以自己来控制换行
vim /etc/init.d/nginx chmod 755 /etc/init.d/nginx # 记得把启动脚本放入init.d目录后,赋予此文件755权限 chkconfig --add nginxd ls /etc/rc.d/rc*.d/*nginx* /etc/rc.d/rc0.d/K15nginx /etc/rc.d/rc3.d/K15nginx /etc/rc.d/rc6.d/K15nginx /etc/rc.d/rc1.d/K15nginx /etc/rc.d/rc4.d/K15nginx /etc/rc.d/rc2.d/K15nginx /etc/rc.d/rc5.d/K15nginx # 因为目前没有用chkconfig设置启动level,所以全部是关闭 # 上面的文件都是/etc/init.d/nginx的软链接文件 chkconfig nginxd on ls /etc/rc.d/rc*.d/*nginx* /etc/rc.d/rc0.d/K15nginx /etc/rc.d/rc3.d/S85nginx /etc/rc.d/rc6.d/K15nginx /etc/rc.d/rc1.d/K15nginx /etc/rc.d/rc4.d/S85nginx /etc/rc.d/rc2.d/S85nginx /etc/rc.d/rc5.d/S85nginx ## 用chkconfig service on了以后,默认把2345level启动了
# daemon是在fuction中的一个函数 # 启动脚本中的". /etc/init.d/function",代表着初始化function脚本 # daemon函数用来在后台运行程序 man daemon ...... NAME daemon - run in the background ...... vim /etc/init.d/function ***************************************** daemon() { # Test syntax. local gotbase= force= nicelevel corelimit local pid base= user= nice= bg= pid_file= local cgroup= nicelevel=0 while [ "$1" != "${1##[-+]}" ]; do case $1 in '') echo $"$0: Usage: daemon [+/-nicelevel] {program}" return 1;; --check) base=$2 gotbase="yes" shift 2 ......省略...... ;; *) echo $"$0: Usage: daemon [+/-nicelevel] {program}" return 1;; esac done *****************************************