Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

gody a écrit :

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

droopy191 a écrit :

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 ... sad

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