- дальнейшие правки для сборки deb-пакетов
This commit is contained in:
Ilya Korolev 2008-12-08 06:42:56 +00:00
parent d98b7d7315
commit 4c29d0ae39
2 changed files with 145 additions and 0 deletions

View File

@ -0,0 +1,13 @@
# В этом файле описаны действия для добавления init.d скрипта. Пока в разработке.
# Данный файл нужно включать в CMakeLists.txt в каталоге каждого конкретного демона.
# Пример использования:
# set(SRCS)
# INCLUDE( ${PROJECT_SOURCE_DIR}/CMakeLists.ssqls )
macro (CREATE_INIT_SCRIPT initname daemonname)
add_custom_command(OUTPUT ${initname} ${daemonname}
COMMAND sed -e 's,[@]DAEMON[@],${daemonname},g' < ${PROJECT_SOURCE_DIR}/tools/init.d/template > ${initname}
COMMENT "Building ${initname}"
)
endmacro (CREATE_INIT_SCRIPT)

132
tools/init.d/template Executable file
View File

@ -0,0 +1,132 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: @DAEMON@
# Default-Start: 2 3 4 5
# Default-Stop: 1
# Short-Description: Yandex daemon
### END INIT INFO
USER=metrica
GROUP=metrica
SHELL=/bin/sh
PROGRAM=@DAEMON@
SYSCONFDIR=/etc/$PROGRAM
PIDDIR=/var/run/$PROGRAM
LOGDIR=/var/log/$PROGRAM
LOCALSTATEDIR=/var/lock
BINDIR=/usr/bin
[ -x $BINDIR/$PROGRAM ] || exit 0
CNFFILE=$SYSCONFDIR/config.xml
PIDFILE=$PIDDIR/$PROGRAM.pid
LOCKFILE=$LOCALSTATEDIR/$PROGRAM
RETVAL=0
isrun()
{
[ -r "$PIDFILE" ] && ps ax|grep `cat "$PIDFILE"`|grep -v grep >/dev/null 2>&1 && return 0 || return 1
}
wait4done()
{
while isrun; do
sleep 1
done
}
start()
{
local EXIT_STATUS
EXIT_STATUS=0
echo -n "Start $PROGRAM service: "
if isrun; then
echo -n "already running "
EXIT_STATUS=1
else
# Clean stale lock files
rm -f "$PIDFILE" "$LOCKFILE"
mkdir -p $LOGDIR
mkdir -p $PIDDIR
chown -R $USER:$GROUP $LOGDIR
chown -R $USER:$GROUP $PIDDIR
su -l $USER -s $SHELL -c "\"$BINDIR/$PROGRAM\" --daemon --pid-file=\"$PIDFILE\" --config-file=\"$CNFFILE\""
EXIT_STATUS=$?
fi
if [ $EXIT_STATUS -eq 0 ]; then
touch "$LOCKFILE"
echo "DONE"
else
echo "FAILED"
fi
return $EXIT_STATUS
}
stop()
{
local EXIT_STATUS
EXITS_STATUS=0
echo -n "Stop $PROGRAM service: "
if isrun; then
kill -9 `cat "$PIDFILE"`
wait4done
rm -f "$LOCKFILE"
fi
echo "DONE"
return $EXIT_STATUS
}
restart()
{
stop
start
}
# See how we were called.
EXIT_STATUS=0
case "$1" in
start)
start
;;
stop)
stop
;;
status)
isrun && echo "$PROGRAM service is running" || echo "$PROGRAM service is stopped"
;;
restart)
restart
;;
reload)
restart
;;
condstart)
isrun || start
;;
condstop)
isrun && stop
;;
condrestart)
isrun && restart
;;
condreload)
isrun && restart
;;
fallenstart)
[ -r "$PIDFILE" ] && start
;;
*)
echo "Usage: ${0##*/} {start|stop|status|restart|reload|condstart|condstop|condrestart|condreload|fallenstart}"
EXIT_STATUS=2
esac
exit $EXIT_STATUS