zoukankan      html  css  js  c++  java
  • Ubuntu 启动停止脚本

    /etc/init.d 目录下的开机启动脚本

    1.

    more redis_8010 

    #/bin/sh

    #Configurations injected by install_server below....


    EXEC=/usr/local/bin/redis-server

    CLIEXEC=/usr/local/bin/redis-cli

    PIDFILE=/var/run/redis_8010.pid

    CONF="/etc/redis/8010.conf"


    REDISPORT="8010"


    ###############


    case "$1" in
    start)
    if [ -f $PIDFILE ]
    then
    echo "$PIDFILE exists, process is already running or crashed"
    else
    echo "Starting Redis server..."
    $EXEC $CONF
    fi
    ;;
    stop)
    if [ ! -f $PIDFILE ]
    then
    echo "$PIDFILE does not exist, process is not running"
    else
    PID=$(cat $PIDFILE)
    echo "Stopping ..."
    $CLIEXEC -p $REDISPORT shutdown
    while [ -x /proc/${PID} ]
    do
    echo "Waiting for Redis to shutdown ..."
    sleep 1
    done
    echo "Redis stopped"
    fi
    ;;
    *)
    echo "Please use start or stop as first argument"
    ;;
    esac

    2. 

    在/ect/rc0--6.d/目录下

    lrwxrwxrwx  1 root root   20 Aug  1 14:30 K20redis_8010 -> ../init.d/redis_8010

    都是init.d目录下文件的软连接

    会在关机级别停止服务

    如 K20rsync -> ../init.d/rsync

    more /etc/init.d/rsync
    #! /bin/sh

    ### BEGIN INIT INFO
    # Provides: rsyncd
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Should-Start: $named
    # Default-Start: 2 3 4 5
    # Default-Stop:
    # Short-Description: fast remote file copy program daemon
    # Description: rsync is a program that allows files to be copied to and
    # from remote machines in much the same way as rcp.
    # This provides rsyncd daemon functionality.
    ### END INIT INFO

    set -e

    # /etc/init.d/rsync: start and stop the rsync daemon

    DAEMON=/usr/bin/rsync
    RSYNC_ENABLE=false
    RSYNC_OPTS=''
    RSYNC_DEFAULTS_FILE=/etc/default/rsync
    RSYNC_CONFIG_FILE=/etc/rsyncd.conf
    RSYNC_PID_FILE=/var/run/rsync.pid
    RSYNC_NICE_PARM=''
    RSYNC_IONICE_PARM=''

    test -x $DAEMON || exit 0

    . /lib/lsb/init-functions

    if [ -s $RSYNC_DEFAULTS_FILE ]; then
    . $RSYNC_DEFAULTS_FILE
    case "x$RSYNC_ENABLE" in
    xtrue|xfalse) ;;
    xinetd) exit 0
    ;;
    *) log_failure_msg "Value of RSYNC_ENABLE in $RSYNC_DEFAULTS_FILE must be either
    'true' or 'false';"
    log_failure_msg "not starting rsync daemon."
    exit 1
    ;;
    esac
    case "x$RSYNC_NICE" in
    x[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";;
    x1[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";;
    x) ;;
    *) log_warning_msg "Value of RSYNC_NICE in $RSYNC_DEFAULTS_FILE must be a value b
    etween 0 and 19 (inclusive);"
    log_warning_msg "ignoring RSYNC_NICE now."
    ;;
    esac
    case "x$RSYNC_IONICE" in
    x-c[123]*) RSYNC_IONICE_PARM="$RSYNC_IONICE";;
    x) ;;
    *) log_warning_msg "Value of RSYNC_IONICE in $RSYNC_DEFAULTS_FILE must be -c1, -c
    2 or -c3;"
    log_warning_msg "ignoring RSYNC_IONICE now."
    ;;
    esac
    fi

    export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

    rsync_start() {
    if [ ! -s "$RSYNC_CONFIG_FILE" ]; then
    log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE"
    log_end_msg 1
    exit 0
    fi
    # See ionice(1)
    if [ -n "$RSYNC_IONICE_PARM" ] && [ -x /usr/bin/ionice ] &&
    /usr/bin/ionice "$RSYNC_IONICE_PARM" true 2>/dev/null; then
    /usr/bin/ionice "$RSYNC_IONICE_PARM" -p$$ > /dev/null 2>&1
    fi
    if start-stop-daemon --start --quiet --background
    --pidfile $RSYNC_PID_FILE --make-pidfile
    $RSYNC_NICE_PARM --exec $DAEMON
    -- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS
    then
    rc=0
    sleep 1
    if ! kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
    log_failure_msg "rsync daemon failed to start"
    rc=1
    fi
    else
    rc=1
    fi
    if [ $rc -eq 0 ]; then
    log_end_msg 0
    else
    log_end_msg 1
    rm -f $RSYNC_PID_FILE
    fi
    } # rsync_start


    case "$1" in
    start)
    if "$RSYNC_ENABLE"; then
    log_daemon_msg "Starting rsync daemon" "rsync"
    if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
    log_progress_msg "apparently already running"
    log_end_msg 0
    exit 0
    fi
    rsync_start
    else
    if [ -s "$RSYNC_CONFIG_FILE" ]; then
    [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_F
    ILE, not starting..."
    fi
    fi
    ;;
    stop)
    log_daemon_msg "Stopping rsync daemon" "rsync"
    start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE
    log_end_msg $?
    rm -f $RSYNC_PID_FILE
    ;;

    reload|force-reload)
    log_warning_msg "Reloading rsync daemon: not needed, as the daemon"
    log_warning_msg "re-reads the config file whenever a client connects."
    ;;

    restart)
    set +e
    if $RSYNC_ENABLE; then
    log_daemon_msg "Restarting rsync daemon" "rsync"
    if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then
    start-stop-daemon --stop --quiet --oknodo --pidfile $RSYNC_PID_FILE || true
    sleep 1
    else
    log_warning_msg "rsync daemon not running, attempting to start."
    rm -f $RSYNC_PID_FILE
    fi
    rsync_start
    else
    if [ -s "$RSYNC_CONFIG_FILE" ]; then
    [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_F
    ILE, not starting..."
    fi
    fi
    ;;

    status)
    status_of_proc -p $RSYNC_PID_FILE "$DAEMON" rsync
    exit $? # notreached due to set -e
    ;;
    *)
    echo "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart|status}"
    exit 1
    esac

    exit 0
    ohujha@dev-imp842-v-o:/etc/rc0.d$

  • 相关阅读:
    有关C#中的引用类型的内存问题
    C# Data Parse
    测绘仪器的精度
    Tomcat部署时war和war exploded的区别
    「小程序JAVA实战」小程序模板在外部页面引用(20)
    「小程序JAVA实战」小程序模块之间引用(19)
    「小程序JAVA实战」小程序模块页面引用(18)
    「小程序JAVA实战」小程序通用模板的使用(17)
    「小程序JAVA实战」小程序视图之细说wx:key列表高级特性(16)
    「小程序JAVA实战」小程序视图之条件判断(15)
  • 原文地址:https://www.cnblogs.com/hujihon/p/5880037.html
Copyright © 2011-2022 走看看