« Lancement automatique de logiciels au démarrage sur EeePC » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
(balises code)
 
(15 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{En construction}}
[[Catégorie:Eee PC]]
(en fait l'article est écrit par un modérateur, mais il n'est pas fini ;-)
 
<u> Note</u> : Si vous souhaitez démarrer un service (ou démon ou encore daemon) lisez plutôt [[La distribution Linux Xandros de l'EeePC#fastservices ou comment démarrer des services (démons ou daemons) au démarrage|cet article]]. L'article ci-dessous consiste plutôt à lancer un logiciel graphique automatiquement.


=Installation=
=Installation=
Cette étape ne doit être faite qu'une seule fois. Elle consiste à ajouter dans le programme exécuté à chaque démarrage (un script [[Shell]]) quelques lignes qui lanceront automatiquement tous les programmes présents dans un répertoire donné. Pour ma part j'ai choisi de créer un répertoire <code>Autostart</code> dans mon dossier utilisateur.
Cette étape ne doit être faite qu'une seule fois. Elle consiste à ajouter dans le programme exécuté à chaque démarrage (un script [[Shell]]) quelques lignes qui lanceront automatiquement tous les programmes présents dans un répertoire donné. Pour ma part j'ai choisi de créer un répertoire <b>Autostart</b> dans mon dossier utilisateur.
 
<u>Note</u> : cette méthode est similaire et compatible à celle employée par KDE. Si vous utilisez les 2 modes de l'EeePC (avancé et easy), vous trouverez sans doute intéressant de faire un lien symbolique (voir ci-dessous) de <b>~/Autostart</b> vers <b>~/.kde/Autostart</b> au lieu de créer un nouveau répertoire (ou de modifier les scripts ci-dessous pour prendre en compte directement le répertoire Autostart de KDE).


Il faut donc éditer le script <code>/usr/bin/startsimple.sh</code> avec [[Software-soft edit-vi|vi]], kate, ou votre éditeur de texte préféré, et y ajouter les lignes suivantes au bon endroit :
Il faut donc éditer le script <b>/usr/bin/startsimple.sh</b> avec [[Software-soft edit-vi|vi]], kate, ou votre éditeur de texte préféré, et y ajouter les lignes suivantes au bon endroit :
<div class="code"><pre>for soft in /home/user/Autostart/* ; do
<div class="code">
         if [ -x $soft ]; then
for soft in /home/user/Autostart/* ; do
                 ( $soft & ) ;
         if [ -x $soft -a ! -d $soft ]; then
                 ( exec $soft ) &
         fi
         fi
done</pre></div>
done
</div>


<u>Explication</u> : pour chaque fichier trouvé dans <code>/home/user/Autostart</code>, s'il est exécutable, alors le lancer. Simple non ?
<u>Explication</u> : pour chaque fichier trouvé dans <b>/home/user/Autostart</b>, s'il est exécutable (et n'est pas un répertoire), alors le lancer. Simple non ?


Ce qui chez moi donne :
Ce qui chez moi donne :
<div class="code"><pre>#!/bin/sh
<div class="code">
#!/bin/sh


sudo /usr/bin/sessreg -d -l :0.0 -u /var/run/utmp user
sudo /usr/bin/sessreg -d -l :0.0 -u /var/run/utmp user
xhost + si:localuser:root # Allow local user root only to access the diplay
xhost + si:localuser:root # Allow local user root only to access the diplay


if ! [ -f /home/user/.firstrundone ]; then
if ! [ -f /home/user/.firstrundone ]; then
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
sudo /usr/bin/firstrunwizard
sudo /usr/bin/firstrunwizard
Ligne 28 : Ligne 34 :
sudo /bin/kill -USR2 1
sudo /bin/kill -USR2 1
fi  
fi  
elif [ -f /tmp/kdesession -a ! -f /home/user/.easysession ]; then
elif [ -f /tmp/kdesession -a ! -f /home/user/.easysession ]; then
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
if [ ! -d /home/user/Desktop ]; then
if [ ! -d /home/user/Desktop ]; then
Ligne 41 : Ligne 47 :
sudo rm -f /tmp/kdesession /tmp/nologin
sudo rm -f /tmp/kdesession /tmp/nologin
exec startkde
exec startkde
else
else
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user  
if [ -d /home/user/Desktop ]; then
if [ -d /home/user/Desktop ]; then
Ligne 66 : Ligne 72 :
networkmonitor ath0 eth0 &
networkmonitor ath0 eth0 &
wapmonitor &
wapmonitor &
(sleep 3; /usr/bin/keyboardstatus) &
(sleep 3; exec /usr/bin/keyboardstatus) &
(sleep 8; /opt/xandros/bin/start_netserv) &
(sleep 8; exec /opt/xandros/bin/start_netserv) &
(sleep 16; /usr/local/bin/asusosd) &
(sleep 16; exec /usr/local/bin/asusosd) &
for soft in /home/user/Autostart/* ; do
for soft in /home/user/Autostart/* ; do
if [ -x $soft ]; then
if [ -x $soft -a ! -d $soft ]; then
( $soft & ) ;
( exec $soft ) &
fi
fi
done
done
Ligne 77 : Ligne 83 :
[ -f /usr/bin/dispwatch ] && /usr/bin/dispwatch &
[ -f /usr/bin/dispwatch ] && /usr/bin/dispwatch &
exec icewm
exec icewm
fi
fi
</pre></div>
</div>
(voir vers la fin du fichier).
(voir vers la fin du fichier).


<u>Note 1</u> : votre fichier peut différer de l'exemple ci-dessus ; le mien a été pas mal modifié par [[TweakEEE]] notamment.
<u>Note 1</u> : votre fichier peut différer de l'exemple ci-dessus ; le mien a été pas mal modifié par [[TweakEEE]] notamment.


<u>Note 2</u> : toujours faire un copie de sauvegarde de ce fichier avant de le modifier. En cas de problème, cela permettra de revenir en arrière facilement.
<u>Note 2</u> : toujours faire un copie de sauvegarde de ce fichier avant de le modifier. En cas de problème, cela permettra de revenir en arrière facilement, par exemple en utilisant le [[Rescue mode EeePC|mode sans échec]].
 
<u>Note 3</u> : notez les 3 mot-clefs <b>exec</b> que j'ai ajoutés, par exemple sur la ligne :<div class="code">(sleep 3; exec /usr/bin/keyboardstatus) &</div> Cela permet d'économiser de la mémoire (environ 1Mo en tout). En effet, les commandes entre parenthèses démarrent un sous-shell (subshell). Ici le but est d'attendre quelques secondes avant de lancer un logiciel. Le subshell  ne se terminera (et donc ne libérera sa mémoire) que lorsque le logiciel sera fermé (ce qui ici n'arrivera qu'à l'extinction de l'EeePC). Utiliser <b>exec</b> permet au logiciel lancé de remplacer en mémoire le subshell, ce qui libère mécaniquement la mémoire qu'il utilisait.


=Ajout d'un logiciel à démarrer automatiquement=
=Ajout d'un logiciel à démarrer automatiquement=
Ligne 97 : Ligne 105 :
[[Image:autostart2.png]]
[[Image:autostart2.png]]


Déplacez-vous dans les répertoires ("/" puis "usr" puis "bin" dans notre exemple) et localisez l'exécutable voulu (truc : cliquez sur un fichier du répertoire, puis tapez son nom pour le trouver plus vite) :
Déplacez-vous dans les répertoires ("/" puis "usr" puis "bin" dans notre exemple) et localisez l'exécutable voulu (truc : cliquez sur un fichier quelconque du répertoire, puis tapez les premières lettres du nom du fichier recherché, afin de le trouver plus vite) :


[[Image:autostart3.png]]
[[Image:autostart3.png]]
Ligne 110 : Ligne 118 :


===En ligne de commande===
===En ligne de commande===
Vous devez d'abord trouver l'exécutable à lancer. En général, les exécutables sont dans /bin ou /usr/bin, mais il y en a aussi dans /opt. Nous allons utiliser la commande <code>which</code> afin de localiser les exécutables :
Vous devez d'abord trouver l'exécutable à lancer. En général, les exécutables sont dans /bin ou /usr/bin, mais il y en a aussi dans /opt. Nous allons utiliser la commande <div class="code">which</div> afin de localiser les exécutables :
<div class="code"><pre>/home/user/.tweakeee/initial.backup> which firefox
<div class="code"><pre>/home/user/.tweakeee/initial.backup> which firefox
/usr/bin/firefox
/usr/bin/firefox
Ligne 116 : Ligne 124 :
/usr/bin/pidgin</pre></div>
/usr/bin/pidgin</pre></div>


Ensuite, rendez vous dans le répertoire Autostart, et utilisez la commande <code>ln</code> afin de créer le lien :
Ensuite, rendez vous dans le répertoire Autostart, et utilisez la commande <b>ln</b> afin de créer le lien :
<div class="code"><pre>/home/user> cd Autostart
<div class="code">
/home/user/Autostart> ln -s /usr/bin/pidgin .
/home/user> cd Autostart
/home/user/Autostart> ln -s /usr/bin/skype .
/home/user/Autostart> ln -s /usr/bin/pidgin .
/home/user/Autostart> ls -l
/home/user/Autostart> ln -s /usr/bin/skype .
total 0
/home/user/Autostart> ls -l
lrwxrwxrwx 1 user user 15 2008-06-14 16:10 pidgin -> /usr/bin/pidgin
total 0
lrwxrwxrwx 1 user user 14 2008-06-14 08:06 skype -> /usr/bin/skype
lrwxrwxrwx 1 user user 15 2008-06-14 16:10 pidgin -> /usr/bin/pidgin
</pre></div>
lrwxrwxrwx 1 user user 14 2008-06-14 08:06 skype -> /usr/bin/skype
/div>
C'est tout ! Au prochain démarrage, Pidgin et Skype se lanceront automatiquement.
C'est tout ! Au prochain démarrage, Pidgin et Skype se lanceront automatiquement.


Vous pourrez par la suite ajouter dans Autostart autant de liens ou de scripts que vous le voulez.
Vous pourrez par la suite ajouter dans Autostart autant de liens ou de scripts que vous le voulez.
==Création d'un script==
Le but de cet article n'étant pas d'expliquer la création de scripts [[Shell]], [[dev-perl|Perl]] ou autres, je vais simplement donner un exemple de script que vous pouvez utiliser si vous désirez lancer un logiciel (ici Pidgin) après une certaine attente (afin par exemple d'attendre que la connection internet s'établisse).
Si vous désirez créer un script plus compliqué, je vous renvoie aux articles [[Shell]], [[dev-perl|Perl]] ou [[dev-python|Python]], et je vous propose de lire les nombreux exemples que vous pouvez trouver sur le disque dur de l'EeePC.
Nous allons créer un fichier texte dans Autostart, et le nommer <b>pidgin.sh</b>. Voici son contenu, je pense qu'il parle de lui même :
<div class="code"><pre>#!/bin/sh
sleep 12
/usr/bin/pidgin</pre></div>
Ensuite, rendez ce fichier exécutable par la commande <b>chmod +x pidgin.sh</b>, ou dans le gestionnaire de fichiers : clic droit / propriétés / onglet "droits d'accès" puis activez les checkboxes "exécution" ; cliquez sur [OK].
<br/>
<br/>
'''<b>[[EeePC|@ Retour à la rubrique Eee PC]]</b>'''


= Copyright =
= Copyright =
Copyright &copy; 6/2008, Jean-Christophe Cardot
Copyright &copy; 6/2008, [[Utilisateur:LeaJice|Jean-Christophe Cardot]]
{{CC-BY-SA}}
{{CC-BY-SA}}
<hr />
[[EeePC|Retour à la page EeePC]]
<hr />

Dernière version du 28 avril 2012 à 16:11


Note : Si vous souhaitez démarrer un service (ou démon ou encore daemon) lisez plutôt cet article. L'article ci-dessous consiste plutôt à lancer un logiciel graphique automatiquement.

Installation

Cette étape ne doit être faite qu'une seule fois. Elle consiste à ajouter dans le programme exécuté à chaque démarrage (un script Shell) quelques lignes qui lanceront automatiquement tous les programmes présents dans un répertoire donné. Pour ma part j'ai choisi de créer un répertoire Autostart dans mon dossier utilisateur.

Note : cette méthode est similaire et compatible à celle employée par KDE. Si vous utilisez les 2 modes de l'EeePC (avancé et easy), vous trouverez sans doute intéressant de faire un lien symbolique (voir ci-dessous) de ~/Autostart vers ~/.kde/Autostart au lieu de créer un nouveau répertoire (ou de modifier les scripts ci-dessous pour prendre en compte directement le répertoire Autostart de KDE).

Il faut donc éditer le script /usr/bin/startsimple.sh avec vi, kate, ou votre éditeur de texte préféré, et y ajouter les lignes suivantes au bon endroit :

for soft in /home/user/Autostart/* ; do
       if [ -x $soft -a ! -d $soft ]; then
               ( exec $soft ) &
       fi
done

Explication : pour chaque fichier trouvé dans /home/user/Autostart, s'il est exécutable (et n'est pas un répertoire), alors le lancer. Simple non ?

Ce qui chez moi donne :

#!/bin/sh
sudo /usr/bin/sessreg -d -l :0.0 -u /var/run/utmp user
xhost + si:localuser:root # Allow local user root only to access the diplay
if ! [ -f /home/user/.firstrundone ]; then

sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user sudo /usr/bin/firstrunwizard if [ $? -eq 0 ]; then touch /home/user/.firstrundone else sudo /bin/kill -USR2 1 fi

elif [ -f /tmp/kdesession -a ! -f /home/user/.easysession ]; then

sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user if [ ! -d /home/user/Desktop ]; then if [ -d /home/.Desktop ]; then mv /home/user/.Desktop /home/user/Desktop fi fi [ -f /usr/bin/dispwatch ] && /usr/bin/dispwatch & for i in /sys/block/s[dr]?/uevent ; do sudo /bin/sh -c "echo add > $i" done sudo rm -f /tmp/kdesession /tmp/nologin exec startkde

else

sudo /usr/bin/sessreg -a -l :0.0 -u /var/run/utmp user if [ -d /home/user/Desktop ]; then if [ -d /home/user/.Desktop.bak ]; then rm -rf /home/user/.Desktop.bak fi if [ -d /home/user/.Desktop ]; then mv /home/user/.Desktop /home/user/.Desktop.bak fi mv /home/user/Desktop /home/user/.Desktop fi if [ -f /home/user/.easysession ]; then # we are switching from full to easy mode for i in /sys/block/s[dr]?/uevent ; do sudo /bin/sh -c "echo add > $i" done fi /opt/xandros/bin/AsusLauncher & icewmtray & [ -n "$XIM_PROGRAM" ] && $XIM_PROGRAM & powermonitor & minimixer & #eeeweather -g -f SAEZ & networkmonitor ath0 eth0 & wapmonitor & (sleep 3; exec /usr/bin/keyboardstatus) & (sleep 8; exec /opt/xandros/bin/start_netserv) & (sleep 16; exec /usr/local/bin/asusosd) & for soft in /home/user/Autostart/* ; do if [ -x $soft -a ! -d $soft ]; then ( exec $soft ) & fi done sudo rm /tmp/nologin [ -f /usr/bin/dispwatch ] && /usr/bin/dispwatch & exec icewm

fi

(voir vers la fin du fichier).

Note 1 : votre fichier peut différer de l'exemple ci-dessus ; le mien a été pas mal modifié par TweakEEE notamment.

Note 2 : toujours faire un copie de sauvegarde de ce fichier avant de le modifier. En cas de problème, cela permettra de revenir en arrière facilement, par exemple en utilisant le mode sans échec.

Note 3 : notez les 3 mot-clefs exec que j'ai ajoutés, par exemple sur la ligne :

(sleep 3; exec /usr/bin/keyboardstatus) &

Cela permet d'économiser de la mémoire (environ 1Mo en tout). En effet, les commandes entre parenthèses démarrent un sous-shell (subshell). Ici le but est d'attendre quelques secondes avant de lancer un logiciel. Le subshell ne se terminera (et donc ne libérera sa mémoire) que lorsque le logiciel sera fermé (ce qui ici n'arrivera qu'à l'extinction de l'EeePC). Utiliser exec permet au logiciel lancé de remplacer en mémoire le subshell, ce qui libère mécaniquement la mémoire qu'il utilisait.

Ajout d'un logiciel à démarrer automatiquement

Pour démarrer un logiciel automatiquement lors du démarrage de votre EeePC, il va maintenant suffire de créer un lien depuis le répertoire Autostart vers l'exécutable du logiciel. Vous pouvez également copier un exécutable dans ce répertoire, ou y créer un script (Shell, Perl ou autre) et le rendre exécutable.

Création d'un lien

En mode graphique

Lancez le gestionnaire de fichiers (onglet travailler). Sélectionnez le répertoire Autostart, puis cliquez sur Fichier / Créer un lien symbolique...

Cliquez sur [Parcourir...], puis sélectionnez "Mon EeePC" et "Tous les systèmes de fichiers" (double cliquez sur ce dernier) :

Déplacez-vous dans les répertoires ("/" puis "usr" puis "bin" dans notre exemple) et localisez l'exécutable voulu (truc : cliquez sur un fichier quelconque du répertoire, puis tapez les premières lettres du nom du fichier recherché, afin de le trouver plus vite) :

Après avoir localisé le fichier, cliquez dessus puis sur [OK].

Note : les fichiers exécutables ont en général pour icone un engrenage bleu.

Enfin cliquez sur [OK] et c'est fini !

En ligne de commande

Vous devez d'abord trouver l'exécutable à lancer. En général, les exécutables sont dans /bin ou /usr/bin, mais il y en a aussi dans /opt. Nous allons utiliser la commande

which

afin de localiser les exécutables :

/home/user/.tweakeee/initial.backup> which firefox
/usr/bin/firefox
/home/user/.tweakeee/initial.backup> which pidgin
/usr/bin/pidgin

Ensuite, rendez vous dans le répertoire Autostart, et utilisez la commande ln afin de créer le lien :

/home/user> cd Autostart
/home/user/Autostart> ln -s /usr/bin/pidgin .
/home/user/Autostart> ln -s /usr/bin/skype .
/home/user/Autostart> ls -l
total 0
lrwxrwxrwx 1 user user 15 2008-06-14 16:10 pidgin -> /usr/bin/pidgin
lrwxrwxrwx 1 user user 14 2008-06-14 08:06 skype -> /usr/bin/skype

/div> C'est tout ! Au prochain démarrage, Pidgin et Skype se lanceront automatiquement.

Vous pourrez par la suite ajouter dans Autostart autant de liens ou de scripts que vous le voulez.

Création d'un script

Le but de cet article n'étant pas d'expliquer la création de scripts Shell, Perl ou autres, je vais simplement donner un exemple de script que vous pouvez utiliser si vous désirez lancer un logiciel (ici Pidgin) après une certaine attente (afin par exemple d'attendre que la connection internet s'établisse).

Si vous désirez créer un script plus compliqué, je vous renvoie aux articles Shell, Perl ou Python, et je vous propose de lire les nombreux exemples que vous pouvez trouver sur le disque dur de l'EeePC.

Nous allons créer un fichier texte dans Autostart, et le nommer pidgin.sh. Voici son contenu, je pense qu'il parle de lui même :

#!/bin/sh
sleep 12
/usr/bin/pidgin

Ensuite, rendez ce fichier exécutable par la commande chmod +x pidgin.sh, ou dans le gestionnaire de fichiers : clic droit / propriétés / onglet "droits d'accès" puis activez les checkboxes "exécution" ; cliquez sur [OK].



@ Retour à la rubrique Eee PC

Copyright

Copyright © 6/2008, Jean-Christophe Cardot

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/