avanti-x beim Booten starten

Thomas Berger ThB at gymel.com
Mi Feb 6 17:30:47 CET 2002


Lieber Herr Sass,

> ps. Hier das aktuelle Startskript, unter
> /sbin/init.d/[unser Runlevel]/S40avanti gelinkt:
> 
> #!/bin/sh
> 
>     if [ $1 = "start" ]; then
>         /usr/local/allegro/avanti-x/avanti-x -daemon
>         echo "Starting AVANTI-Daemon"
>     else
>         if [ $1 = "stop" ]; then
>         /usr/local/allegro/avanti-x/stop_avanti &
>         echo "Stopping AVANTI-Daemon"
>         fi
>     fi

Das Problem scheint mir zu sein, dass Sie im Moment
des Avanti-Aufrufs im Verzeichnis /usr/local/allegro/avanti-x
sein muessen, sonst findet avanti-x seine Konfiguration nicht.

Hier ein sh-Variante, die funktioniert (der Aufruf ist etwas
komplizierter, weil hier die core-Size bei Crashes auf 1kB
eingestellt wird, das erhoeht angeblich wieder die Sicherheit):

Das Binary avanti-x ist uebrigens suid irgendein User gesetzt,
damit
1. avanti-x keinesfalls als root agiert
2. Mr. "Irgendein User" in der Lage ist, avanti-x manuell zu stoppen
   und erneut zu starten
3. im Fall eines Crashs irgendein User nicht darueber stolpert,
   dass der neue avanti-x sich ueber Unbeschreibbarkeit von 
   .pid beschwert

viele Gruesse
Thomas Berger

#! /bin/sh
# /etc/rcxxx.d/avanti: start and stop the Allegro-C "avanti" Database
Server 


# Configurable options:

case "$1" in
  start)
        echo "Starting Avanti-X Database Server: avanti-x"
        (cd /export/home/allegro/avanti-x; ulimit -c 1; ./avanti-x
-daemon)
        echo "."
        ;;

  stop)
	echo "Stopping Avanti-X Database Server: avanti-x"
	for i in `ps -ef |grep avanti-x|grep -v grep |nawk '{ print $2 }'`
	do
		kill -2 $i
	done
        echo "."
	sleep 1;
	for i in `ps -ef |grep avanti-x|grep -v grep |nawk '{ print $2 }'`
	do
		kill -9 $i
	done
	echo "."
        ;;

  *)
        echo "Usage: /etc/rcxy.d/S89avanti {start|stop}"
        exit 1
esac

exit 0




Mehr Informationen über die Mailingliste Allegro