HowTo: Memcache 4, init-script




debian init script

При этом, вместо инициализации, skript настраивается довольно легко с помощью использования и модификации структуры debian:

init-skript

#! /bin/sh

### BEGIN INIT INFO

# Provides:             memcached

# Required-Start:       $syslog

# Required-Stop:        $syslog

# Should-Start:         $local_fs

# Should-Stop:          $local_fs

# Default-Start:        2 3 4 5

# Default-Stop:         0 1 6

# Short-Description:    memcached — Memory caching daemon replicated

# Description:          memcached — Memory caching daemon replicated

### END INIT INFO

# Author: Marcus Spiegel <marcus.spiegel@gmail.com>

#

# Please remove the «Author» lines above and replace them

# with your own name if you copy and modify this script.

# Do NOT «set -e»

# PATH should only include /usr/* if it runs after the mountnfs.sh script

PATH=/sbin:/usr/sbin:/bin:/usr/bin

DESC=»memcachedrep»

NAME=memcached

DAEMON=/usr/local/bin/$NAME

DAEMON_ARGS=»—options args»

PIDFILE=/var/run/memcachedrep.pid

SCRIPTNAME=/etc/init.d/$DESC

VERBOSE=»yes»

# Exit if the package is not installed

[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present

[ -r /etc/default/$DESC ] && . /etc/default/$DESC

# Load the VERBOSE setting and other rcS variables

. /lib/init/vars.sh

# Define LSB log_* functions.

# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.

. /lib/lsb/init-functions

#

# Function that starts the daemon/service

#

do_start()

{

# Return

#   0 if daemon has been started

#   1 if daemon was already running

#   2 if daemon could not be started

start-stop-daemon —start —quiet —pidfile $PIDFILE —exec $DAEMON —test > /dev/null \

|| return 1

start-stop-daemon —start —quiet —pidfile $PIDFILE —exec $DAEMON — \

$DAEMON_ARGS \

|| return 2

# Add code here, if necessary, that waits for the process to be ready

# to handle requests from services started subsequently which depend

# on this one.  As a last resort, sleep for some time.

}

#

# Function that stops the daemon/service

#

do_stop()

{

# Return

#   0 if daemon has been stopped

#   1 if daemon was already stopped

#   2 if daemon could not be stopped

#   other if a failure occurred

start-stop-daemon —stop —quiet —retry=TERM/30/KILL/5 —pidfile $PIDFILE —name $NAME

RETVAL=»$?»

[ "$RETVAL" = 2 ] && return 2

# Wait for children to finish too if this is a daemon that forks

# and if the daemon is only ever run from this initscript.

# If the above conditions are not satisfied then add some other code

# that waits for the process to drop all resources that could be

# needed by services started subsequently.  A last resort is to

# sleep for some time.

start-stop-daemon —stop —quiet —oknodo —retry=0/30/KILL/5 —exec $DAEMON

[ "$?" = 2 ] && return 2

# Many daemons don’t delete their pidfiles when they exit.

rm -f $PIDFILE

return «$RETVAL»

}

#

# Function that sends a SIGHUP to the daemon/service

#

do_reload() {

#

# If the daemon can reload its configuration without

# restarting (for example, when it is sent a SIGHUP),

# then implement that here.

#

start-stop-daemon —stop —signal 1 —quiet —pidfile $PIDFILE —name $NAME

return 0

}

case «$1″ in

start)

[ "$VERBOSE" != no ] && log_daemon_msg «Starting $DESC» «$NAME»

do_start

case «$?» in

0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

esac

;;

stop)

[ "$VERBOSE" != no ] && log_daemon_msg «Stopping $DESC» «$NAME»

do_stop

case «$?» in

0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

esac

;;

#reload|force-reload)

#

# If do_reload() is not implemented then leave this commented out

# and leave ‘force-reload’ as an alias for ‘restart’.

#

#log_daemon_msg «Reloading $DESC» «$NAME»

#do_reload

#log_end_msg $?

#;;

restart|force-reload)

#

# If the «reload» option is implemented then remove the

# ‘force-reload’ alias

#

log_daemon_msg «Restarting $DESC» «$NAME»

do_stop

case «$?» in

0|1)

do_start

case «$?» in

0) log_end_msg 0 ;;

1) log_end_msg 1 ;; # Old process is still running

*) log_end_msg 1 ;; # Failed to start

esac

;;

*)

# Failed to stop

log_end_msg 1

;;

esac

;;

*)

#echo «Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}» >&2

echo «Usage: $SCRIPTNAME {start|stop|restart|force-reload}» >&2

exit 3

;;

esac

:

Popularity: 1%



Этот материал находится на сайте http://compiling.ru
__________________________________________



Похожие посты:


  • Drupal 6 Hosting With nginx And PHP-FastCGI. Part 3
  • Server Monitoring With munin And monit. Part3
  • Drupal 6 Hosting With nginx And PHP-FastCGI. Part 4
  • Настройка высокодоступного веб-сервера. Part 3
  • Syslog Better Logging Tutorial



  • Опубликовано 17 Май 2010 в 11:55. В рубриках: Solutions. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить отзыв или трекбек со своего сайта.

    Оставьте свой отзыв

    Партнёры:


    forum.vpnssl.ru

    Выбор решений, консультации, примеры.

    Есть вопрос! Оставь свой голос!

    Question:

    Что нужно админу для счастья?

    View Results

    Loading ... Loading ...




    Most Popular Posts



    Supported:



  • free counters