-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Liste,

ich habe hier einen selbst geschriebenen Daemon und möchte diesem beim 
Systemstart automatisch über ein init-Skript starten. Allerdings soll 
der Daemon nicht mit root-Rechten laufen, sondern von einem "normalen" 
Benutzer ausgeführt werden. Den Daemon selbst kann ich leider nicht so 
stricken, dass er nicht mit root-Rechten läuft.

Ich bräuchte also ein init-Script, dass den Daemon mit den Rechten eines 
bestimmten Users ausführt. Weiterhin sollte dieses Script nicht nur 
unter debian, sondern auch auf anderen Linux-Systemen laufen.

Folgendes habe ich bis jetzt:

- ----------
#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
progname=CallISDN.pl
pgm=/usr/local/CallISDN/bin/$progname
pid=/var/run/$progname.pid

test -f $pgm || exit 0

die(){ echo "$progname: $*">&2; exit 1; }

set -e

case "$1" in
start)
        echo -n "Starting $progname: "
        $pgm --daemon >/dev/null 2>&1 & echo $! >$pid
        echo "done."
        ;;
stop)
        echo -n "Stopping $progname: "
        p=`cat $pid 2>/dev/null`; test -n "$p" && (
                kill $p 2>/dev/null || exit 0; sleep 1
                kill -9 $p 2>/dev/null || exit 0; sleep 1
                kill -0 $p && die "$pid won't die"
        )
        if test $? -eq 0; then
                rm -f $pid
                echo "done."
        else
                echo "failed."
                exit 1
        fi
        ;;
restart|force-reload)
        $0 stop || true
        $0 start
        ;;
status)
        p=`cat $pid 2>/dev/null`
        test -n "$p" || die "no pidfile for $pgm"
        kill -0 $p 2>/dev/null || die "$pgm[$p] is no longer running"
        ps wup $p
        ;;
*)
        die "Usage: `basename $0` {start|stop|restart|force-reload|status}"
        ;;
esac

exit 0
- --------

Das Ganze funktioniert bestens als root. 

Ich habe mir überlegt mit dem su-Kommando zu einem anderen User zu 
wechseln, und dann den Daemon zu starten. Also in etwa so:

su callisdn --command="$pgm --daemon >/dev/null 2>&1 & echo $! >$pid"

wäre das ein Ansatz oder habe ich bessere Möglichkeiten (wie gesagt, es 
soll auch auf anderen Distris laufen)?

Danke schon mal für Tipps und viele Grüße,
Schöpp

- -- 
Christian Schoepplein <chris at schoeppi.net>
Manage your communication:     http://www.otrs.com
Linux for the blind:           http://www.blinux.suse.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDs8Xlv/+9eWr7D+oRAuAOAKDEHeN+hgnkjlXzIxLDffIKVLZCAACdFWIP
Q0GDqZZ5ohyjsQFClc9DmZs=
=Kd2Z
-----END PGP SIGNATURE-----


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an