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