#1 Le 28/11/2011, à 17:52
- gody
Exécution d'un deamon sans lancer de session
Bonjour à tous,
J'essai de mettre un place un petit script qui lance un deamon (deluged) avant le lancement d'une session.
J'ai donc ce fichier dans /etc/init.d il est en 755
#! /bin/bash
### BEGIN INIT INFO
# Provides: deluged
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Lancement du deamon deluged
# Description: blabla
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/deluged
test -x $DAEMON || exit 0
case "$1" in
start)
/usr/bin/deluged
;;
stop)
killall deluged #ou rien
;;
force-reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
Lorsque je fait /etc/init.d/deluged {start|stop|restart|force-reload} le script et exécuté par l'utilisateur toto ce qui est très bien
Par contre après création des liens symboliques sudo update-rc.d deluged default puis reboot
le deamon est bien lancé mais par l'utilisateur root... peut on changer ce user?
J'ai fouillé un peu partout et je n'ai pas trouvé.
Merci de votre aide
Hors ligne
#2 Le 28/11/2011, à 18:05
- Vlam
Re : Exécution d'un deamon sans lancer de session
Salut, je dis peut être une bêtise, mais un "su toto" en début de script, cela ne marche pas?
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#3 Le 28/11/2011, à 18:08
- gody
Re : Exécution d'un deamon sans lancer de session
Hello,
De cette façon il va demandé le MDP ?
L'idée est de lancé le deamon à l'initialisation de la machine
edit: cela ne fonctionne pas
Dernière modification par gody (Le 28/11/2011, à 18:12)
Hors ligne
#4 Le 28/11/2011, à 18:24
- droopy191
Re : Exécution d'un deamon sans lancer de session
salut,
Voyez ici par exemple
script de démarrage
Hors ligne
#5 Le 28/11/2011, à 18:25
- Vlam
Re : Exécution d'un deamon sans lancer de session
De cette façon il va demandé le MDP ?
Non, pas si c'est l'utilisateur "root" qui l'exécute.
« Doutez de tout et surtout de ce que je vais vous dire. »
Hors ligne
#6 Le 28/11/2011, à 19:29
- gody
Re : Exécution d'un deamon sans lancer de session
salut,
Voyez ici par exemple
script de démarrage
Salut, j'avais déjà vu ce script... grosse usine pour démarrer un piti daemon.
Ceci dit je fait un test, installation de deluge-web.
Mise en place de fichier je place mon user "toto" qui existe dans /etc/default/deluge-daemon
reboot, puis
Not starting deluged-daemon, edit /etc/default/deluged.... to start it.
Uniquement deux lignes dans ce fichier dur de se tromper ...
Je ne comprend pas ...
Hors ligne
#7 Le 28/11/2011, à 20:27
- Darunia
Re : Exécution d'un deamon sans lancer de session
A ma connaissance, tous les scripts d'init sont executés sous root.
Si tu veux lancer une commande sous un autre user :
su - user -c commande
Dans ton cas :
su - toto -c /usr/bin/deluged
Mais ce n'est pas très propre, normalement on regle le umask du deamon pour positionner les droits unix des fichiers qu'il écrit.
En mettant un umask de 022 normalement ça le fait :
UMASK=022
Dernière modification par Darunia (Le 28/11/2011, à 20:27)
Hors ligne
#8 Le 28/11/2011, à 21:08
- gody
Re : Exécution d'un deamon sans lancer de session
Merci cela fonctionne.
Je sais que ce n'est pas propre... mais pour le moment ce n'est pas grave
Hors ligne
#9 Le 29/11/2011, à 01:52
- gody
Re : Exécution d'un deamon sans lancer de session
Bon dans un souci de propreté je continue de chercher une solution.
Voici le script que j'ai trouvé Doc Ubuntu
#! /bin/sh -e
### BEGIN INIT INFO
# Provides: deluged
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2
# Default-Stop: 0 1 6
# Short-Description: Daemonized version of deluge and webui.
# Description: Starts the deluge daemon with the user specified in
# /etc/default/deluge-daemon.
### END INIT INFO
DAEMON="/usr/bin/deluged" #ligne de commande du programme
DAEMONUSER="toto" #utilisateur du programme
DAEMON_NAME="deluged" #Nom du programme (doit être identique à l'exécutable)
PATH="/sbin:/bin:/usr/sbin:/usr/bin" #Ne pas toucher
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
d_start () {
log_daemon_msg "Starting system $DAEMON_NAME Daemon"
start-stop-daemon --background --name $DAEMON_NAME --start --quiet --exec $DAEMON --chuid $DAEMONUSER
log_end_msg $?
}
d_stop () {
log_daemon_msg "Stopping system $DAEMON_NAME Daemon"
start-stop-daemon --name $DAEMON_NAME --stop --retry 5 --quiet --name $DAEMON_NAME
log_end_msg $?
}
case "$1" in
start|stop)
d_${1}
;;
restart|reload|force-reload)
d_stop
d_start
;;
force-stop)
d_stop
killall -q $DAEMON_NAME || true
sleep 2
killall -q -9 $DAEMON_NAME || true
;;
status)
status_of_proc "$DAEMON_NAME" "$DAEMON" "system-wide $DAEMON_NAME" && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|force-stop|restart|reload|force-reload|status}"
exit 1
;;
esac
exit 0
Mes torrents à télécharger sont dans /home/toto/Téléchargements en ajout automatique dans deluge.
Lorsque j’exécute la commande /etc/init.d/deluged les torrents s'ajoute automatiquement si ils sont dans le dossier.
Lorsque le poste boot/reboot le daemon est bien lancé avec le user toto mais n'ajoute pas les torrents du dossier toto.
Quand je passe --user toto pour lancer le deluged il me le lance quand même en root d'ou le --chuid à la fin de la ligne
Est du au --chuid pour changer le user?
Dernière modification par gody (Le 29/11/2011, à 01:57)
Hors ligne
#10 Le 01/12/2011, à 18:29
- gody
Re : Exécution d'un deamon sans lancer de session
un petit Up?
Hors ligne