На днях я упоминал
инсталляцию,
в которой к базе данных 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 |
Ребутнул машину, дернул
за веб-интерфейс — работает. Просто,
да?
Комментариев нет:
Отправить комментарий