Hallo, kann mir jemand einen Tipp geben wie man Programme mit Hilfe von init.d als user, also zum Beispiel als vdr startet und nicht als root?
Danke
Hallo, kann mir jemand einen Tipp geben wie man Programme mit Hilfe von init.d als user, also zum Beispiel als vdr startet und nicht als root?
Danke
probier mal in deinem script
su vdr -c "script.sh"
flo
hi,
c't vdr ist ja quasi debian. da kannst du "start-stop-daemon" nehmen. das ist imho die elegante debian variante.
die syntax & co. bekommst aus der manpage oder kuck sie dir aus anderen scripten unter init.d ab.
ich hab z.B. sowas am laufen:
#! /bin/bash
#
# motion Start the motion detection .
#
NAME=motion
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/local/bin/motion
PIDFILE=/home/motion/motion_daemon.pid
OPTIONS="-c /etc/motion/motion.conf"
USER="motion"
trap "" 1
export LANG=C
export PATH
test -f $DAEMON || exit 0
case "$1" in
start)
echo "Starting motion detection : $NAME"
start-stop-daemon --start --chuid $USER --exec $DAEMON -- $OPTIONS
;;
stop)
echo "Stopping motion detection : $NAME"
start-stop-daemon --stop --pidfile $PIDFILE --stop --retry 30
;;
status)
echo "Status motion detection : $NAME"
if (test -f $PIDFILE); then
echo -n "Running process for $NAME : "
pidof $NAME
else
echo "Stopped"
fi
;;
reload-config)
echo "Reloading $NAME configuration"
start-stop-daemon --stop --pidfile $PIDFILE --signal HUP --exec $DAEMON
;;
restart-motion)
echo "Restarting $NAME"
start-stop-daemon --stop --pidfile $PIDFILE --oknodo --exec $DAEMON --retry 30
start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON
;;
restart)
$0 restart-motion
exit $?
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|status|reload-config|restart}"
exit 1
;;
esac
if [ $? == 0 ]; then
echo .
exit 0
else
echo failed
exit 1
fi
Alles anzeigen
das ist nicht viel mehr, als ein minimal angepasstes skeleton-script.
aehm, mal doof gefragt:
Kann man beim hochfahren irgendwie einen User automatisch einloggen? Dann wuerde doch auch die User-eigene .profile zum starten von Programmen gehen, oder?
Gruss,
- berndl
ZitatOriginal von berndl
aehm, mal doof gefragt:
Kann man beim hochfahren irgendwie einen User automatisch einloggen? Dann wuerde doch auch die User-eigene .profile zum starten von Programmen gehen, oder?
Gruss,
- berndl
Ja, man kann beim hochfahren auch einen User automatisch anmelden.
Da gibts mehrere Wege.
z.B.:
/etc/inittab
oder die Startoptionen von den Windowmanagern via gdm und kdm.
Aua!
Ja das geht (irgendwie), aber es sitzt dann ja kein User davor - man will doch VDR als Deamon starten und nicht als interaktives Programm wie eine Textverarbeitung...
Wenn Du dich dann selbst als dieser User einloggst, dann wird VDR nochmal gestartet weil die .profile nochmal ausgeführt wird ...
Die .profile soll wie der Name schon sagt das Profil setzen: Suchpfad für Programme, Sprachumgebung, Commandline-Prompt, Terminal initialisieren, etc
Greets
FireFly
ich häng mich mal mit rein und hoffe, dass ich den Thread dabei nicht allzuweit hijacke...
ich hab debian, starte einen daemon mit einem bestimmten usernamen (wie oben).
Soweit so gut.
Obiger user soll sich nicht anmelden können, also hab ich in der passwd "/bin/false" eingetragen. Das klappt auch alles soweit.
Jetzt will ich aber, das der daemon selbst ein shell-script starten kann.
Wie mach ich das am besten?
Grüße Michi
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!