Init-Script und nicht-root-User
-----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-----
Reply to: