На днях я упоминал
инсталляцию,
в которой к базе данных Redis
добавлен веб-интерфейс посредством
Webdis. Весь винегрет прекрасно
работает, но есть но. Webdis
приходится запускать руками при
перезапуске сервера (машины).
Раз запустил, два. На
третий раз понял, что так не пойдет. И
демонизировал вебдис. В смысле,
интегрировал его в систему стартовых
скриптов Debian.
В конфиге Webdis
есть опция отвечающая за форк процесса
в фон. Включил ее
nano /root/webdis/webdis.json "daemonize": true,
Потом скрипт «сервиса»
cp /etc/init.d/redis-server /root/webdis/webdis-server
nano /root/webdis/webdis-server
cp /root/webdis/webdis-server /etc/init.d/webdis-server
update-rc.d webdis-server defaults
service webdis-server start
Получившийся скрипт
/etc/init.d/webdis-server прост как валяный сапог
#! /bin/sh
### BEGIN INIT INFO
# Provides: webdis-server
# Required-Start: $syslog $remote_fs $redis-server
# Required-Stop: $syslog $remote_fs $redis-server
# Should-Start: $redis-server
# Should-Stop: $redis-server
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: webdis HTTP server
# Description: Webdis - HTTP interface to Redis
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/root/webdis/webdis
DAEMON_ARGS=
NAME=webdis-server
DESC=webdis-server
RUNDIR=/root/webdis
PIDFILE=$RUNDIR/redis-server.pid
test -x $DAEMON || exit 0
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
set -e
cd $RUNDIR
case "$1" in
start)
echo -n "Starting $DESC: "
mkdir -p $RUNDIR
touch $PIDFILE
chown root:root $RUNDIR $PIDFILE
chmod 755 $RUNDIR
if [ -n "$ULIMIT" ]
then
ulimit -n $ULIMIT
fi
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid root:root --chdir $RUNDIR --exec $DAEMON -- $DAEMON_ARGS
then
echo "$NAME."
else
echo "failed"
fi
;;
stop)
echo -n "Stopping $DESC: "
if start-stop-daemon --stop --retry forever/TERM/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
then
echo "$NAME."
else
echo "failed"
fi
rm -f $PIDFILE
sleep 1
;;
restart|force-reload)
${0} stop
${0} start
;;
status)
echo -n "$DESC is "
if start-stop-daemon --stop --quiet --signal 0 --name ${NAME} --pidfile ${PIDFILE}
then
echo "running"
else
echo "not running"
exit 1
fi
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
|
Ребутнул машину, дернул
за веб-интерфейс — работает. Просто,
да?
Комментариев нет:
Отправить комментарий