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 22/10/2015, à 12:50

Byggvir

Exécuter un script avant l'ouverture de la session

Bonjour,

J'ai un pc sous Ubuntu 15.04 et je voudrais exécuter un script juste avant le gestionnaire de connexion ou je dois répondre à une question pour faire démarrer directement vers le gestionnaire de connexion ou de créer un écran virtuel puis de démarrer le gestionnaire de connexion.
Pour ce qui est de faire le script ce n'est pas un soucis ce que je ne sais pas faire c'est d'exécuter un script avant le gestionnaire de connexion.

Merci d'avance de vos réponses,

Dernière modification par Byggvir (Le 22/10/2015, à 12:50)

Hors ligne

#2 Le 22/10/2015, à 21:52

HPIR40

Re : Exécuter un script avant l'ouverture de la session

un peu de lecture pour commencer

http://doc.ubuntu-fr.org/tutoriel/comme … en_service

attention: ton programme doit obligatoirement se finir par

exit 0

et ensuite pour finir les info sur quelle position lui donner dans la procedure de démarrage, donc juste avant les services de demarrage de connexion

http://www.funix.org/fr/linux/startup.htm

http://www.octetmalin.net/linux/tutorie … cripts.php

Dernière modification par HPIR40 (Le 22/10/2015, à 21:54)

Hors ligne

#3 Le 22/10/2015, à 21:56

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Merci pour toute les infos je vais tenter ça

Hors ligne

#4 Le 23/10/2015, à 11:53

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Re,

Donc je comprends maintenant comment cela fonctionne donc j'ai voulu tester avant de mettre mon gros script. J'ai fait un petit script de test que je placerai avant lightdm.

Le souci, c'est que je bloque au moment de tester mon script en tant que service. je m'explique :
Mon script :

#!/bin/sh -e

DAEMON="/opt/ED_start0.01/ED_start.sh" #ligne de commande du programme
daemon_OPT="-d -p -f /home/gsp/ED_start0.01/ED_start.ini"  #argument à utiliser par le programme
DAEMONUSER="root" #utilisateur du programme
daemon_NAME="ED_start.sh" #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 --chuid $DAEMONUSER --exec $DAEMON -- $daemon_OPT
        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

#DBT script
xeyes &
while test "$onvastopper" != stop
do
echo "On va stopper le programme ?"
read onvastopper
if test $onvastopper = stop
then
killall xeyes &
else
xeyes &
fi
done

exit 0

Donc un truc tout simple qui lance xeyes.
J'ai copié et rendu exécutable mon script dans /etc/init.d/ et /opt/ED_start0.01/
Mais quand je veux tester avec :

sudo /etc/init.d/ED_start.sh start

J'obtiens le message d'erreur suivant :

[....] Starting ED_start.sh (via systemctl): ED_start.serviceFailed to start ED_start.service: Unit ED_start.service failed to load: No such file or directory.
 failed!

Il me cherche un ED_start.service mais je ne comprend pas vraiment pourquoi

Dernière modification par Byggvir (Le 23/10/2015, à 11:55)

Hors ligne

#5 Le 23/10/2015, à 14:28

HPIR40

Re : Exécuter un script avant l'ouverture de la session

je suppose que les droit 755 sont bien appliqué

a tu transformé ton programme en service? si oui appelle le non pas ED_start.sh mais ED_start

Dernière modification par HPIR40 (Le 23/10/2015, à 14:29)

Hors ligne

#6 Le 23/10/2015, à 17:47

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Je viens de tester cela ne change strictement rien, toujours la même erreur

Hors ligne

#7 Le 23/10/2015, à 18:04

MicP

Re : Exécuter un script avant l'ouverture de la session

AMHA tu devrais regarder du côté de systemd

Je ne sais pas si ça pourra t'aider, mais voici toujours quelques liens.

https://wiki.ubuntu.com/systemd

https://wiki.ubuntu.com/SystemdForUpstartUsers

Dernière modification par MicP (Le 23/10/2015, à 18:24)

Hors ligne

#8 Le 23/10/2015, à 18:10

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Il me semble pas que mon système utilise systemd mais je vais jeter un coup d'oeil.
Sinon c'est quoi "AMHA" un cris ? XD

Hors ligne

#9 Le 23/10/2015, à 18:15

Ayral

Re : Exécuter un script avant l'ouverture de la session

Byggvir a écrit :

Il me semble pas que mon système utilise systemd mais je vais jeter un coup d'oeil.
Sinon c'est quoi "AMHA" un cris ? XD

À Mon Humble Avis


Pour mettre les retours de commande entre deux balises code, les explications sont là : https://forum.ubuntu-fr.org/viewtopic.php?id=1614731
Blog d'un retraité
Site de graphisme du fiston Loïc
Ubuntu 22.04 LTS sur un Thinkpad W540

Hors ligne

#10 Le 23/10/2015, à 18:16

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Merci pour l'info

Hors ligne

#11 Le 23/10/2015, à 18:29

MicP

Re : Exécuter un script avant l'ouverture de la session

Byggvir a écrit :

…Il me semble pas que mon système utilise systemd…

Je n'ai pas assez fouillé sur les différentes versions ubuntu, donc moi non plus je ne suis pas certain que ce soit le cas.
C'est simplement le message d'erreur qui m'a fait pensé à ça : …Starting ED_start.sh (via systemctl): ED_start.service

Dernière modification par MicP (Le 23/10/2015, à 18:31)

Hors ligne

#12 Le 23/10/2015, à 18:34

Byggvir

Re : Exécuter un script avant l'ouverture de la session

Il y a en effet systemd sur la machine (Ubuntu 15.04), mais comment savoir si il est utilisé ?

Hors ligne

#13 Le 23/10/2015, à 18:45

MicP

Re : Exécuter un script avant l'ouverture de la session

Ma machine debian 8.2 utilise systemd :

michel@debG53SW:~$ cat /proc/1/comm
systemd
michel@debG53SW:~$ ps -eaf | grep [s]ystemd
root       225     1  0 17:06 ?        00:00:00 /lib/systemd/systemd-journald
root       242     1  0 17:06 ?        00:00:00 /lib/systemd/systemd-udevd
root       863     1  0 17:06 ?        00:00:00 /lib/systemd/systemd-logind
message+   868     1  0 17:06 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
lightdm   1212     1  0 17:06 ?        00:00:00 /lib/systemd/systemd --user
michel    1322     1  0 17:06 ?        00:00:00 /lib/systemd/systemd --user
michel@debG53SW:~$ 

Entre la commande :

systemctl

Pg-Up, Pg-Dwn, flèches,  et q pour quitter.
mêmes touches que pour less(puisque ça dépends du pager par défaut)

Dernière modification par MicP (Le 23/10/2015, à 18:59)

Hors ligne

#14 Le 23/10/2015, à 18:48

Byggvir

Re : Exécuter un script avant l'ouverture de la session

J'ai moi aussi plusieurs serveur Debian et je savais que Debian 8 utilisait systemd (ça avait fait grand bruit).
Donc pour moi

cat /proc/1/comm
systemd

Même résultat donc il faut en déduire que la machine utilise systemd ? Si oui comment je gère avec ça pour lancer mon script au démarrage ?

Dernière modification par Byggvir (Le 23/10/2015, à 18:48)

Hors ligne

#15 Le 23/10/2015, à 19:09

MicP

Re : Exécuter un script avant l'ouverture de la session

…ça avait fait grand bruit…

Oui, et à mon avis il s'agissait surtout de "résistance au changement", mais bon, on va pas relancer tout ça, ou alors sans moi smile
Sans compter que je me suis toujours adapté avec beaucoup de plaisir dans la découverte des nouveautés, alors j'aime.
Après, quand j'aurai de l'expérience avec systemd, je pourrais peut-être en parler. Pour l'instant j'en connais trop peu.

Hors ligne