[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: