Lancement automatique de logiciels au démarrage sur EeePC

De Lea Linux
Révision datée du 28 avril 2012 à 16:11 par Jiel (discussion | contributions) (balises code)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche


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/