{{tag>tutoriel administration système}} ---- ====== 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 [[:sessions|session]] graphique. La procédure s'applique seulement à l'[[:utilisateur]] courant. Une procédure différente est nécessaire selon l'[[:environnements|environnements de bureau]] (classé ici par ordre alphabétique) : ===== Lancement en mode "normal", en mode utilisateur ===== ==== GNOME Shell ==== Dans l'outil [[:gnome-tweak-tool|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 [[:raccourci-lanceur|un lanceur dédié]] ([[#Méthode par ajout d'un lanceur|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ème** → **Administration du système** (Plasma 4.x) ou **Espace de travail** (Plasma 5.x) → **Démarrage et arrêt** → **Gestionnaire 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 [[:lubuntu#applications_au_demarrage|cette page]]. ====XFCE==== [[:tutoriel:comment_lancer_application|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 : * Pour lancer une application, tapez simplement son nom (éventuellement avec une option, s'il y en a une qui vous intéresse). * pour lancer un script : **sh -c "/chemin-du-script/nom-du-script"** * Pour lancer un script __dans une fenêtre du terminal__ : **xfce4-terminal -x "/chemin-du-script/nom-du-script"** ==== Unity ==== Recherchez l'utilitaire "Applications au démarrage" dans le //tableau de bord// ou entrez dans un [[:terminal]] la commande suivante : gnome-session-properties {{ tutoriel:application_demarrage_01.png?300}} Pour ajouter une application, cliquez sur le bouton //Ajouter//. ~CB~ {{ tutoriel:application_demarrage_02.png}} La fenêtre qui s'ouvre comporte 3 champs : //Nom//, //Commande// et //Commentaire//. * Dans le champ //nom// entrez le nom de l'application, par exemple : "//LibreOffice Writer//". * Le second champ //Commande// est le seul réellement important, c'est lui qui indiquera à votre système l'application à lancer au démarrage. Entrez-y la commande exacte nécessaire pour lancer l'application (rendez-vous sur la page de la documentation en question pour connaître la commande adéquate, il s'agit souvent du nom de l'application **sans majuscule** et **tout attaché**, par exemple : **libreoffice-writer**). * Le troisième champ //Commentaire// sert à ajouter un commentaire, par exemple : "//Traitement de texte de LibreOffice//". 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 [[:raccourci-lanceur#cas_general|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 **[[:raccourci-lanceur|lanceur (page dédiée)]]** ([[http://standards.freedesktop.org/desktop-entry-spec/latest/|*.desktop]]) dans le dossier ''~/.config/autostart/'' Exemple minimal de fichier lanceur pour [[:chromium-browser|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_shell|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 [[https://fr.wikipedia.org/wiki/Run_level|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 - 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|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 ([[:script_sysV|les scripts system V]]) depuis [[:xenial|Ubuntu 16.04 LTS Xenial]]. 1. Créer un fichier UnService.service dans /etc/systemd/system/ [Unit] Description= [Service] Type=oneshot ExecStart= [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_shell|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 : [[https://ubuntuplace.info/questions/290/executer-un-fichier-desktop-dans-le-terminal|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 ([[:script_sysV|les scripts system V]]) depuis [[:xenial|Ubuntu 16.04 LTS Xenial]]. 1. Créer un fichier .service dans $HOME/.config/systemd/user avec cette commande systemctl --user edit --full --force qui ouvrira l'application [[https:nano|nano]] et y insérer les directives [Unit] Description= [Service] Type=oneshot ExecStart= [Install] WantedBy=multi-user.target Au besoin modifier le fichier avec l'une de ces commandes systemctl --user edit --full systemctl --user edit 2. Vérifier que le contenu du fichier est vraisemblable : systemd-analyze verify $HOME/.config/systemd/user/.service> 3. Faire une première exécution : systemctl --user start 4. Valider cette exécution pour le prochain démarrage de l'ordinateur : systemctl --user enable Voici un autre exemple du contenu de 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**) | [[:gnupg|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|OnBoard]] est un clavier virtuel | | | Orca Screen Reader (**Orca screen reader**) | [[:orca|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 [[:audio|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**)| [[:gnupg|Trousseau de clés GNOME : service secret]] | | | SSH Key Agent (**Agent de clés SSH**) | Agent GNOME qui charge vos clés [[wpfr>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]] (**Zeitgeist Datahub**) | Enregistre dans un journal les activités de l'utilisateur et les événements de Gnome | | Sources : [[https://askubuntu.com/questions/11415/which-startup-applications-can-i-safely-turn-off|ici]] et [[http://gnomeshell.wordpress.com/2011/08/28/manage-the-startup-applications/|là]]. ===== Voir aussi ===== * [[:demarrage|Comment Ubuntu démarre / le startup / le démarrage]] * Discussion [[https://forum.ubuntu-fr.org/viewtopic.php?id=820|Lancer un programme au démarrage d'Ubuntu]] sur le forum ubuntu-fr. * La page de documentation sur les [[:services]] qui permet d'aller beaucoup plus loin et de gérer les services lancés avant même l'ouverture d'une session (utilisateurs avancés seulement). * [[https://forum.ubuntu-fr.org/viewtopic.php?id=415701|Lancer application au démarrage avec une temporisation]] * [[https://papy-tux.legtux.org/doc1367/index.html|Description des services]] ---- //Contributeurs principaux : [[utilisateurs:mydjey]], [[utilisateurs:Vincent85]]//