Lancement automatique de logiciels au démarrage sur EeePC
<cadre type=note> 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.</cadre>
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 ]; then
( exec $soft ) & ;
fi
done
Explication : pour chaque fichier trouvé dans /home/user/Autostart
, s'il est exécutable, 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 ]; 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
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].
Copyright
Copyright © 6/2008, Jean-Christophe Cardot
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |