Table des matières

, ,

Lancement des applications (ou commandes ou scripts) en fin du lancement de l’environnement de bureau

Ce tutoriel présente les méthodes pour lancer automatiquement des applications au démarrage d'une session graphique.

La procédure s'applique seulement à l'utilisateur courant.

Une procédure différente est nécessaire selon l'environnements de bureau (classé ici par ordre alphabétique) :

Lancement en mode "normal", en mode utilisateur

GNOME Shell

Dans l'outil Ajustements, rendez-vous à la section "Applications au démarrage" et ajoutez une application.

Les applications proposées sont bien celles qui apparaissent dans la vue des applications (ou dans les menus, si vous en avez installé).

Pour lancer une ligne de commande spécifique au démarrage, il faudra créer un lanceur dédié (voir plus bas).

Les informations pour Unity sont également valables pour Gnome, en particulier la commande qui permet de lancer l'application.

KDE Plasma

Allez dans Configuration du systèmeAdministration du système (Plasma 4.x) ou Espace de travail (Plasma 5.x) → Démarrage et arrêtGestionnaire de services.

MATE

Rechercher dans le menu Applications au démarrage, ou dans un terminal la commande suivante :

mate-session-properties

La suite est sensiblement identique à la partie Unity.

LXDE / LXQT

Pour LXDE, voir cette page.

XFCE

Lancez le Gestionnaire de paramètres et ouvrez Session et démarrage (ou bien entrez la commande xfce4-session-settings dans un terminal).

Sélectionnez l'onglet "Démarrage automatique" et cliquez sous le bouton +Ajouter, en bas à gauche. Dans la fenêtre qui s'ouvre, vous avez 3 zones. "Nom" et "description" sont libres, mais dans la zone "commande", vous devez saisir votre script ou votre application :

Unity

Recherchez l'utilitaire "Applications au démarrage" dans le tableau de bord ou entrez dans un terminal la commande suivante :

gnome-session-properties

Pour ajouter une application, cliquez sur le bouton Ajouter.


La fenêtre qui s'ouvre comporte 3 champs : Nom, Commande et Commentaire.

Si vous n'êtes pas sûr de la commande qui lance un logiciel, vous pouvez utiliser le terminal où vous entrerez simplement le début du nom probable de ce logiciel, puis tapez 2 fois sur Tab. La bonne commande sera proposée.

Le nom de la commande est en général similaire au paquet installé (par exemple pour le paquet vlc, la commande est : vlc) et si besoin, vous pouvez vous aider de la commande which.
Si vous désirez lancer un script, utilisez sh -c "/chemin/complet/du/script"

Méthode par ajout d'un lanceur

Cette méthode est plus technique, mais devrait fonctionner pour presque tous les environnements.

Pour chaque programme à ajouter, il suffit de lui créer son lanceur (page dédiée) (*.desktop) dans le dossier ~/.config/autostart/

Exemple minimal de fichier lanceur pour le navigateur Chromium (préchargement par l'option ​--no-startup-window) :

[Desktop Entry]
Type=Application
Exec=/usr/bin/chromium-browser --no-startup-window
X-GNOME-Autostart-enabled=true #Si cette ligne est sur true, alors l'application se lancera automatiquement
Name=Chromium
Les fichiers des lanceurs peuvent aussi indiquer une icône et plein d'autres choses, mais ce ne sont pas forcément des informations pertinentes pour l'usage qu'on en fait ici.

Exemple de code pour générer le lanceur (à inclure dans un script exécutable ) :

cat << EOF >> ~/.config/autostart/nom_du_lanceur.desktop
[Desktop Entry]
Type=Application
Exec=nom_du_programme_à_lancer
Name=nom_qui_apparaîtra_dans_le_gestionnaire_de_démarrage
X-GNOME-Autostart-enabled=true #Si cette ligne est sur true, alors l'application se lancera automatiquement
Icon=nom_de_l_icône_qui_apparaîtra_dans_le_gestionnaire_de_démarrage   #recherchez à l'intérieur de /usr/share/icons/ pour trouver le nom exact adapté
Comment=commentaire_au_choix
EOF

En ligne de commande

La même chose, en une seule ligne de commande :

Nom="Le nom de l'application à lancer" ; Cde="ligne de commande à lancer" ; Rep="si nécessaire, répertoire de la commande à lancer" ; Commentaire="le commentaire à votre convenance" ; Icone="chemin complet vers l'icône"; printf "[Desktop Entry]\nType=Application\nExec=%s%s\nHidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\nName[fr_FR]=%s\nName=%s\nComment[fr_FR]=%s\nComment=%s\nIcon=%s" "$Rep" "$Cde" "$Nom" "$Nom" "$Commentaire" "$Commentaire" "$Icone" > "$HOME/.config/autostart/""$Cde"".desktop"

ou alors (sans icône) :

Nom="Le nom de l'application à lancer" ; Cde="ligne de commande à lancer" ; Rep="si nécessaire, répertoire de la commande à lancer" ; Commentaire="le commentaire à votre convenance" ; printf "[Desktop Entry]\nType=Application\nExec=%s%s\nHidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\nName[fr_FR]=%s\nName=%s\nComment[fr_FR]=%s\nComment=%s\nIcon=%s" "$Rep" "$Cde" "$Nom" "$Nom" "$Commentaire" "$Commentaire" > "$HOME/.config/autostart/""$Cde"".desktop"

Lancement en mode administrateur, en mode root

La section qui suit est destinée aux utilisateurs et utilisatrices avancé(e)s, prenez toutes les précautions qui s'imposent avant d'aller plus loin.

Méthode rc.local

Une méthode simple (mais pas très propre) est d'ajouter les commandes dans le fichier /etc/rc.local

Le script /etc/rc.local est destiné à être utilisé par l'administrateur système. Il est généralement exécuté après le démarrage de tous les services système normaux, à la fin du processus de basculement vers un niveau d'exécution multi-utilisateur. Vous pouvez l’utiliser pour démarrer un service personnalisé, par exemple un serveur installé dans /usr/local. La plupart des installations n'en ont pas besoin /etc/rc.local, elles sont fournies pour la minorité des cas où cela est nécessaire.

Méthode Debian

J'ai lu cette méthode que je n'ai pas testé (désolé). Je vous invite à la tester, la corriger au besoin ou la supprimer si elle est obsolete. (Enfin, supprimer cette note). Merci. Sangorys
  1. Créer un script dans :

/etc/init.d/monScript.sh

(imaginons que le script s'appelle monScript.sh)
- Donner les droits d'execution avec :
chmod +x /etc/init.d/monScript.sh
- Referencer le script :
update-rc.d monScript.sh defaults

Méthode crontab

Le principe ici est d'utiliser le démon cron qui sert normalement à lancer des commandes / scripts sur évenements (principalement basée sur le temps).

Le paramètre @reboot permet de lancer une commande au démarrage.

On va donc simplement editer la configuration cron et lancer la commande /script :

1. Ouvrir la configuration de l'administrateur :

sudo crontab -e

2. Ajouter à la fin du fichier la commande / script "maCommande" que vous souhaitiez executer :

@reboot maCommande

Méthode system D

A vérifier puis supprimer ce commentaire

Systemd est le gestionnaire de système qui remplace upstart et son prédécesseur (les scripts system V) depuis Ubuntu 16.04 LTS Xenial.

1. Créer un fichier UnService.service dans /etc/systemd/system/

[Unit]
Description=<Mettre une description>
[Service]
Type=oneshot 
ExecStart=<Une commande>
[Install]
WantedBy=multi-user.target

2. Vérifier que le contenu du fichier est vraisemblable :

  sudo systemd-analyze  verify UnService

3. Faire une première exécution :

sudo systemctl start UnService

4. Valider cette exécution pour le prochain démarrage de l'ordinateur :

sudo systemctl enable UnService

Utilisation avancée du gestionnaire de démarrage

La section qui suit est destinée aux utilisateurs et utilisatrices avancé(e)s, prenez toutes les précautions qui s'imposent avant d'aller plus loin.

Afficher l'ensemble des tâches au démarrage

Les tâches présentes dans le gestionnaire de démarrage ne s'affichent pas toutes par défaut.

Ne faites pas ces modifs par simple curiosité, parce que lors d'une mise à niveau, vous serez interrogés sur remplacer ou conserver le fichier de configuration pour chacune des applications (c'est pénible). Ou alors, n'oubliez pas de revenir à la configuration par défaut comme indiqué.

Il existe une manipulation pour faire apparaître l'ensemble des tâches, dans un terminal entrez :

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

Au prochain lancement, le gestionnaire de démarrage affichera toutes les tâches lancées.
Pour revenir à la configuration par défaut, suivez le chemin inverse :

sudo sed -i 's/NoDisplay=false/NoDisplay=true/g' /etc/xdg/autostart/*.desktop

Lancer une application au démarrage avec une temporisation

Vous pouvez avoir besoin de démarrer une application avec un délai d'attente. Si tel est votre cas, en lieu et place d'une simple commande (par exemple : firefox), il vous faudra ajouter dans le champ commande (voir image ci-dessus) l'entrée suivante :

sh -c "sleep 10 && (firefox &)"

Dans cet exemple le 10 après sleep est le nombre de secondes à attendre avant que la commande se lance, firefox est un exemple de commande, bien sûr remplacez ce mot par le nom de votre logiciel.

Lancer sa propre séquence grâce à un script

Voici un exemple de script de démarrage pour lancer une séquence de programmes.

  #!/bin/bash
  clipit     #se lance dès l'ouverture de session
  sleep 10     #attend 10 secondes
  libreoffice-writer     
  sleep 2     #attend 2 secondes
  vlc
  exit 0

Une autre méthode est de lancer un fichier .desktop existant via l'une des méthodes de cette page : Exécution d'un fichier .desktop dans le terminal

Méthode system D

A vérifier puis supprimer ce commentaire

Systemd est le gestionnaire de système qui remplace upstart et son prédécesseur (les scripts system V) depuis Ubuntu 16.04 LTS Xenial.

1. Créer un fichier <MonService>.service dans $HOME/.config/systemd/user avec cette commande

systemctl --user edit <MonService> --full --force 

qui ouvrira l'application nano et y insérer les directives

[Unit]
Description=<Mettre une description>
[Service]
Type=oneshot 
ExecStart=<Un fichier exécutable stocké dans mon $HOME>
[Install]
WantedBy=multi-user.target

Au besoin modifier le fichier avec l'une de ces commandes

systemctl --user edit  <MonService> --full
systemctl --user edit  <MonService> 

2. Vérifier que le contenu du fichier est vraisemblable :

systemd-analyze  verify <Monservice> $HOME/.config/systemd/user/<MonService>.service>

3. Faire une première exécution :

systemctl --user start <MonService>

4. Valider cette exécution pour le prochain démarrage de l'ordinateur :

systemctl --user enable <MonService>

Voici un autre exemple du contenu de <Un fichier exécutable stocké dans mon $HOME> qui doit avoir la permission d'exécution

#!/bin/bash
echo Début de suivi de connexion au $(date +"%Y-%m-%d %H:%M") >> Bonjour.txt
for ((i=0;i=12;i++));do sleep 300; A=$(ping -c 1 8.8.8.8  | head -2|tail -1) ; if [[ $A =~ Destination ]]; then echo $(date +"%Y-%m-%d %H:%M") Erreur de connectique $A  >> Bonjour.txt ; else  echo $(date +"%Y-%m-%d %H:%M") Vitesse de connexion  $A  >> /Bonjour.txt ; fi; done
echo Fin de suivi de connexion au $(date +"%Y-%m-%d %H:%M") >> Bonjour.txt

Liste des applications démarrées par défaut (Unity)

Cette liste permet de savoir à quoi sert chaque application. Vous pourrez ainsi désactiver celles qui vous sont inutiles.

Programme Description Statut
Backup Monitor (Moniteur de sauvegarde) Sauvegarde planifiée du système à intervalle régulier
Bluetooth manager Gestionnaire de connexions aux périphériques Bluetooth
Chat (Discussion) Affichage les notifications du logiciel Telepathy
Check for new hardware drivers Vérifie s'il y a un nouveau composant matériel installé (autre qu'une clé/disque USB)
Disk Notifications Vous alerte de l'état de santé de votre disque dur (utile si votre disque dur est compatible avec la technologie SMART)
Evolution Alarm Notify Notifications du calendrier et courriel Inutile si vous n'utilisez pas les alarmes du calendrier d'Evolution
Files (Fichiers) Permet à Nautilus (GNOME) d'afficher des fichiers sur le bureau (inutile avec Unity)
GNOME Login Sound Son joué après la connexion d'un utilisateur
GNOME Settings Daemon (Service de paramètres GNOME) Prend en compte les réglages dans GNOME (thèmes, icônes, etc…) Recommandé pour tous
GPG Password Agent (Agent de mot de passe GPG) Trousseau de clés GNOME : agent PGP Inutile si vous n'utilisez pas de clés GPG pour signer ou chiffrer des données
GSettings Data Conversion (Conversion des données GSettings) Permet de convertir les anciens fichiers de configuration gnome
Mount Helper (Assistant de montage) Après avoir branché un périphérique USB l'ouvre automatiquement (sinon vous devrez l'ouvrir vous même en cliquant sur le disque externe qui apparaît dans Nautilus).
Network (Réseau) Gestion des interfaces réseaux (Wifi, ethernet, etc..)
NVDIA X Server Settings pour les cartes graphiques Nvidia
Onboard OnBoard est un clavier virtuel
Orca Screen Reader (Orca screen reader) Orca permet aux utilisateurs non/mal-voyants d'utiliser Ubuntu Désactivable si vous n'avez pas besoin des fonctionnalités d'accessibilité pour la vocalisation ou le braille
Personal File Sharing (Partage de fichiers personnels) Partage de fichiers personnels en réseau
PolicyKit Authentication Agent Permet aux applications de vous demander le mot de passe de l'administrateur si besoin
Power Manager Gère la mise en veille du PC
Print Queue Applet
PulseAudio Sound System (Système de son PulseAudio) pour avoir du son
Remote Desktop (Partage de bureau) Permet de prendre le contrôle à distance au PC
Screensaver (Économiseur d'écran) Effet dégradé progressif de la luminosité puis affichage de l'écran de veille
Secret Storage Service (Service de stockage secret) Trousseau de clés GNOME : service secret
SSH Key Agent (Agent de clés SSH) Agent GNOME qui charge vos clés SSH pour permettre aux applications l'accès à ces clés Désactivable si vous n'utilisez pas de clés SSH
Update Notifier (Notificateur de mises à jour) Vérifie automatiquement la disponibilité de mises à jour
User folders update
Visual Assistance
Volume Control
Zeitgeist (Zeitgeist Datahub) Enregistre dans un journal les activités de l'utilisateur et les événements de Gnome

Sources : ici et .

Voir aussi


Contributeurs principaux : mydjey, Vincent85