由于要用到php5的一个新功能,不得不从source编译php5,从而打开了一个连锁反应,导致我的apache,mysql 全都要编译一遍,外加一个libxml的库,累得不轻。可是好戏还在后头,重新从source编译过来的apache启动时不自己起来,要去/usr/local/apache/bin里面手动起来,这可累坏了有省电习惯每天关机的我了。郁闷之极,决定搞个自动启动的脚本。会者不难,发现init.d下面有个skeleton,框架打好了,可以直接修改。改完后又修改了一下retry的超时,测试效果不错。
另外,做好的脚本还要挂到run level 2 3 4 5里面去,0 1 6是关机,冲启,单用户,需要设置为off.
下面推荐两个命令实现runlevel的挂接:
update-rc.d
sysv-rc-conf,如果没有装,就apt-get install 就OK啦
updaterc.d比较低层次,推荐sysv-rc-conf,它提供了命令行界面和类似top的基于文本的gui界面,界面还是比较友好的。就是没有发现可以控制运行顺序的选项。
下面是我的apache启动脚本:
  1让阿帕奇-apache自动启动的办法#! /bin/sh
  2让阿帕奇-apache自动启动的办法### BEGIN INIT INFO
  3让阿帕奇-apache自动启动的办法# Provides:          skeleton
  4让阿帕奇-apache自动启动的办法# Required-Start:    $local_fs $remote_fs
  5让阿帕奇-apache自动启动的办法# Required-Stop:     $local_fs $remote_fs
  6让阿帕奇-apache自动启动的办法# Default-Start:     2 3 4 5
  7让阿帕奇-apache自动启动的办法# Default-Stop:      0 1 6
  8让阿帕奇-apache自动启动的办法# Short-Description: Example initscript
  9让阿帕奇-apache自动启动的办法# Description:       This file should be used to construct scripts to be
 10让阿帕奇-apache自动启动的办法#                    placed in /etc/init.d.
 11让阿帕奇-apache自动启动的办法### END INIT INFO
 12让阿帕奇-apache自动启动的办法
 13让阿帕奇-apache自动启动的办法# Author: Foo Bar <foobar@baz.org>
 14让阿帕奇-apache自动启动的办法#
 15让阿帕奇-apache自动启动的办法# Please remove the "Author" lines above and replace them
 16让阿帕奇-apache自动启动的办法# with your own name if you copy and modify this script.
 17让阿帕奇-apache自动启动的办法
 18让阿帕奇-apache自动启动的办法# Do NOT "set -e"
 19让阿帕奇-apache自动启动的办法
 20让阿帕奇-apache自动启动的办法# PATH should only include /usr/* if it runs after the mountnfs.sh script
 21让阿帕奇-apache自动启动的办法#PATH=/sbin:/usr/sbin:/bin:/usr/bin
 22让阿帕奇-apache自动启动的办法DESC="Apache http service"
 23让阿帕奇-apache自动启动的办法NAME=httpd
 24让阿帕奇-apache自动启动的办法DAEMON=/usr/local/apache/bin/$NAME
 25让阿帕奇-apache自动启动的办法DAEMON_ARGS=""
 26让阿帕奇-apache自动启动的办法PIDFILE=/var/run/$NAME.pid
 27让阿帕奇-apache自动启动的办法SCRIPTNAME=/etc/init.d/$NAME
 28让阿帕奇-apache自动启动的办法
 29让阿帕奇-apache自动启动的办法# Exit if the package is not installed
 30让阿帕奇-apache自动启动的办法-"$DAEMON" ] || exit 0
 31让阿帕奇-apache自动启动的办法
 32让阿帕奇-apache自动启动的办法# Read configuration variable file if it is present
 33让阿帕奇-apache自动启动的办法#[ -r /usr/local/apache/conf/httpd.conf ] && . /usr/local/apache/conf/httpd.conf
 34让阿帕奇-apache自动启动的办法
 35让阿帕奇-apache自动启动的办法# Load the VERBOSE setting and other rcS variables
 36让阿帕奇-apache自动启动的办法/lib/init/vars.sh
 37让阿帕奇-apache自动启动的办法
 38让阿帕奇-apache自动启动的办法# Define LSB log_* functions.
 39让阿帕奇-apache自动启动的办法# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 40让阿帕奇-apache自动启动的办法/lib/lsb/init-functions
 41让阿帕奇-apache自动启动的办法
 42让阿帕奇-apache自动启动的办法#
 43让阿帕奇-apache自动启动的办法# Function that starts the daemon/service
 44让阿帕奇-apache自动启动的办法#
 45让阿帕奇-apache自动启动的办法do_start()
 46让阿帕奇-apache自动启动的办法{
 47让阿帕奇-apache自动启动的办法    # Return
 48让阿帕奇-apache自动启动的办法    #   0 if daemon has been started
 49让阿帕奇-apache自动启动的办法    #   1 if daemon was already running
 50让阿帕奇-apache自动启动的办法    #   2 if daemon could not be started
 51让阿帕奇-apache自动启动的办法    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
 52让阿帕奇-apache自动启动的办法        || return 1
 53让阿帕奇-apache自动启动的办法    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
 54让阿帕奇-apache自动启动的办法        $DAEMON_ARGS \
 55让阿帕奇-apache自动启动的办法        || return 2
 56让阿帕奇-apache自动启动的办法    # Add code here, if necessary, that waits for the process to be ready
 57让阿帕奇-apache自动启动的办法    # to handle requests from services started subsequently which depend
 58让阿帕奇-apache自动启动的办法    # on this one.  As a last resort, sleep for some time.
 59让阿帕奇-apache自动启动的办法}
 60让阿帕奇-apache自动启动的办法
 61让阿帕奇-apache自动启动的办法#
 62让阿帕奇-apache自动启动的办法# Function that stops the daemon/service
 63让阿帕奇-apache自动启动的办法#
 64让阿帕奇-apache自动启动的办法do_stop()
 65让阿帕奇-apache自动启动的办法{
 66让阿帕奇-apache自动启动的办法    # Return
 67让阿帕奇-apache自动启动的办法    #   0 if daemon has been stopped
 68让阿帕奇-apache自动启动的办法    #   1 if daemon was already stopped
 69让阿帕奇-apache自动启动的办法    #   2 if daemon could not be stopped
 70让阿帕奇-apache自动启动的办法    #   other if a failure occurred
 71让阿帕奇-apache自动启动的办法    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
 72让阿帕奇-apache自动启动的办法    RETVAL="$?"
 73让阿帕奇-apache自动启动的办法    [ "$RETVAL" = 2 ] && return 2
 74让阿帕奇-apache自动启动的办法    # Wait for children to finish too if this is a daemon that forks
 75让阿帕奇-apache自动启动的办法    # and if the daemon is only ever run from this initscript.
 76让阿帕奇-apache自动启动的办法    # If the above conditions are not satisfied then add some other code
 77让阿帕奇-apache自动启动的办法    # that waits for the process to drop all resources that could be
 78让阿帕奇-apache自动启动的办法    # needed by services started subsequently.  A last resort is to
 79让阿帕奇-apache自动启动的办法    # sleep for some time.
 80让阿帕奇-apache自动启动的办法    start-stop-daemon --stop --quiet --oknodo --retry=0/2/KILL/5 --exec $DAEMON
 81让阿帕奇-apache自动启动的办法    [ "$?" = 2 ] && return 2
 82让阿帕奇-apache自动启动的办法    # Many daemons don't delete their pidfiles when they exit.
 83让阿帕奇-apache自动启动的办法    rm -f $PIDFILE
 84让阿帕奇-apache自动启动的办法    return "$RETVAL"
 85让阿帕奇-apache自动启动的办法}
 86让阿帕奇-apache自动启动的办法
 87让阿帕奇-apache自动启动的办法#
 88让阿帕奇-apache自动启动的办法# Function that sends a SIGHUP to the daemon/service
 89让阿帕奇-apache自动启动的办法#
 90让阿帕奇-apache自动启动的办法do_reload() {
 91让阿帕奇-apache自动启动的办法    #
 92让阿帕奇-apache自动启动的办法    # If the daemon can reload its configuration without
 93让阿帕奇-apache自动启动的办法    # restarting (for example, when it is sent a SIGHUP),
 94让阿帕奇-apache自动启动的办法    # then implement that here.
 95让阿帕奇-apache自动启动的办法    #
 96让阿帕奇-apache自动启动的办法    start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
 97让阿帕奇-apache自动启动的办法    return 0
 98让阿帕奇-apache自动启动的办法}
 99让阿帕奇-apache自动启动的办法
100让阿帕奇-apache自动启动的办法case "$1" in
101让阿帕奇-apache自动启动的办法  start)
102让阿帕奇-apache自动启动的办法    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
103让阿帕奇-apache自动启动的办法    do_start
104让阿帕奇-apache自动启动的办法    case "$?" in
105让阿帕奇-apache自动启动的办法        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
106让阿帕奇-apache自动启动的办法        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
107让阿帕奇-apache自动启动的办法    esac
108让阿帕奇-apache自动启动的办法    ;;
109让阿帕奇-apache自动启动的办法  stop)
110让阿帕奇-apache自动启动的办法    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
111让阿帕奇-apache自动启动的办法    do_stop
112让阿帕奇-apache自动启动的办法    case "$?" in
113让阿帕奇-apache自动启动的办法        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
114让阿帕奇-apache自动启动的办法        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
115让阿帕奇-apache自动启动的办法    esac
116让阿帕奇-apache自动启动的办法    ;;
117让阿帕奇-apache自动启动的办法  #reload|force-reload)
118让阿帕奇-apache自动启动的办法    #
119让阿帕奇-apache自动启动的办法    # If do_reload() is not implemented then leave this commented out
120让阿帕奇-apache自动启动的办法    # and leave 'force-reload' as an alias for 'restart'.
121让阿帕奇-apache自动启动的办法    #
122让阿帕奇-apache自动启动的办法    #log_daemon_msg "Reloading $DESC" "$NAME"
123让阿帕奇-apache自动启动的办法    #do_reload
124让阿帕奇-apache自动启动的办法    #log_end_msg $?
125让阿帕奇-apache自动启动的办法    #;;
126让阿帕奇-apache自动启动的办法  restart|force-reload)
127让阿帕奇-apache自动启动的办法    #
128让阿帕奇-apache自动启动的办法    # If the "reload" option is implemented then remove the
129让阿帕奇-apache自动启动的办法    # 'force-reload' alias
130让阿帕奇-apache自动启动的办法    #
131让阿帕奇-apache自动启动的办法    log_daemon_msg "Restarting $DESC" "$NAME"
132让阿帕奇-apache自动启动的办法    do_stop
133让阿帕奇-apache自动启动的办法    case "$?" in
134让阿帕奇-apache自动启动的办法      0|1)
135让阿帕奇-apache自动启动的办法        do_start
136让阿帕奇-apache自动启动的办法        case "$?" in
137让阿帕奇-apache自动启动的办法            0) log_end_msg 0 ;;
138让阿帕奇-apache自动启动的办法            1) log_end_msg 1 ;; # Old process is still running
139让阿帕奇-apache自动启动的办法            *) log_end_msg 1 ;; # Failed to start
140让阿帕奇-apache自动启动的办法        esac
141让阿帕奇-apache自动启动的办法        ;;
142让阿帕奇-apache自动启动的办法      *)
143让阿帕奇-apache自动启动的办法          # Failed to stop
144让阿帕奇-apache自动启动的办法        log_end_msg 1
145让阿帕奇-apache自动启动的办法        ;;
146让阿帕奇-apache自动启动的办法    esac
147让阿帕奇-apache自动启动的办法    ;;
148让阿帕奇-apache自动启动的办法  *)
149让阿帕奇-apache自动启动的办法    #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
150让阿帕奇-apache自动启动的办法    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
151让阿帕奇-apache自动启动的办法    exit 3
152让阿帕奇-apache自动启动的办法    ;;
153让阿帕奇-apache自动启动的办法esac
154让阿帕奇-apache自动启动的办法
155让阿帕奇-apache自动启动的办法:
156让阿帕奇-apache自动启动的办法


相关文章:

  • 2021-12-28
  • 2021-12-28
  • 2021-08-10
  • 2021-09-29
  • 2021-12-28
  • 2021-12-06
  • 2021-12-18
  • 2022-12-23
猜你喜欢
  • 2021-07-05
  • 2021-08-21
  • 2021-09-10
  • 2021-04-25
  • 2021-08-01
  • 2021-10-23
  • 2021-10-02
相关资源
相似解决方案