Applications de démarrage
Ubuntu et d'autres distributions basées sur GNOME sont livrées avec une application simplement appelée « Applications de démarrage ». Il peut être utilisé pour gérer les applications et les scripts qui s'exécutent lors d'un nouveau redémarrage du système ou d'une connexion.
Lancez l'application « Applications de démarrage » à partir du lanceur d'applications et cliquez sur le bouton « Ajouter » pour ajouter une nouvelle entrée.
Remplissez les champs « Nom » et « Commande » selon vos besoins, puis cliquez sur le bouton « Ajouter » pour terminer la création d'une nouvelle entrée. L'entrée créée dans la capture d'écran ci-dessous enverra un rappel "Créer une sauvegarde" en tant que notification système à chaque redémarrage / connexion. Vous pouvez le remplacer par votre propre commande ou par le chemin complet de votre script bash. Vous pouvez également utiliser n'importe quelle commande système existante ou des exécutables généralement situés dans divers dossiers "bin" du système de fichiers.
Comme indiqué ci-dessus, un rappel de sauvegarde est affiché à chaque redémarrage.
Systemd
Systemd est un démon et un gestionnaire de services qui contient divers utilitaires pour gérer les processus système et les composants du système d'exploitation. Dans sa forme simpliste, il est généralement utilisé pour démarrer et terminer les services dans un nouveau cycle de démarrage.
Systemd peut être utilisé pour lancer automatiquement une application ou exécuter un script lors d'un nouveau démarrage. Pour créer la même notification de rappel de sauvegarde expliquée ci-dessus, vous devez d'abord créer les dossiers et fichiers requis en exécutant les commandes ci-dessous :
$ mkdir -p ~/.config/systemd/user$ nano ~/.config/systemd/user/backup_reminder.un service
Remplacez "nano" par la commande de votre éditeur de texte préféré. Remplacez "backup_reminder" par tout autre nom que vous préférez.
Collez le code ci-dessous dans le backup_reminder.fichier de service créé à l'aide de la commande ci-dessus.
[Unité]Description=Envoie un rappel de sauvegarde à chaque redémarrage
PartOf=session-graphique.cible
[Un service]
ExecStart=bash -c 'sommeil 10 ; notify-send "Créer une sauvegarde"'
Type=oneshot
[Installer]
WantedBy=session-graphique.cible
Le code ci-dessus est assez simple. Il envoie une notification "Créer une sauvegarde" 10 secondes après le chargement de la session graphique (une fois à chaque redémarrage ou connexion).
Exécutez les commandes ci-dessous pour activer le service afin qu'il puisse s'exécuter automatiquement à chaque redémarrage.
$ chmod 644 ~/.config/systemd/user/backup_reminder.un service$ systemctl --user activer backup_reminder.un service
$ systemctl --user daemon-reload
$ redémarrer
Ceci n'est qu'un exemple simple d'exécution d'une commande de base au démarrage à l'aide de systemd. Vous pouvez également créer des services avancés avec plusieurs conditions et plusieurs commandes. Pour plus d'informations, reportez-vous à la page de manuel systemd en exécutant la commande ci-dessous :
$ man systemdNotez que cet exemple explique la création d'un nouveau service qui ne nécessite pas d'accès root et qui convient aux applications à démarrage automatique qui ne nécessitent pas d'autorisations root. Si vous souhaitez démarrer automatiquement des scripts nécessitant un accès root, vous devez créer un nouveau service systemd dans le répertoire "/etc/systemd/system" au lieu de "~/.config/systemd/user" et omettez le commutateur "-user" dans les commandes mentionnées ci-dessus.
Tâche planifiée
Cron est un outil qui peut exécuter périodiquement des tâches planifiées selon les conditions spécifiées par un utilisateur. Ces tâches planifiées sont créées dans Crontab dans un format prédéfini. En termes simples, Crontab indique à Cron quelles tâches exécuter à quel moment.
Comme systemd, les tâches crontab peuvent être utilisées pour lancer des applications et exécuter des scripts automatiquement au démarrage. Pour ajouter une nouvelle tâche cron, exécutez la commande ci-dessous :
$ crontab -eAjoutez les lignes suivantes à la fin du fichier texte (lance automatiquement le terminal GNOME à chaque redémarrage) :
SHELL=/bin/bash@reboot sleep 30 && DISPLAY=:0 gnome-terminal
Vous pouvez utiliser votre propre commande ou fournir le chemin complet vers un script shell.
Notez que contrairement à systemd, cron ne peut pas détecter si la session graphique a été chargée ou non. Vous devez spécifier une période d'attente estimée jusqu'au chargement du serveur X et un identifiant d'affichage. Vous pouvez connaître votre ID d'affichage en exécutant la commande ci-dessous :
$ echo $AFFICHAGELe délai avant l'exécution de la commande ou du script dépend de la configuration de votre système et de l'heure de démarrage.
RC.local
Une autre méthode pour exécuter des scripts et des commandes au démarrage consiste à utiliser "rc.fichier "local". Notez que lors de mes tests, je n'ai pas pu différer l'exécution du script jusqu'à ce que la session graphique soit en direct. L'ajout d'un délai de veille entraîne un retard dans l'affichage de l'écran de connexion lui-même. Pour cette raison, je n'ai pas réussi à exécuter des applications graphiques au démarrage en utilisant rc.fichier local. Modification de rc.local nécessite également un accès root, contrairement à tous les autres exemples expliqués ci-dessus.
Pour ajouter des commandes/scripts à rc.fichier local, exécutez la commande ci-dessous (crée un nouveau fichier rc.fichier local s'il n'existe pas):
$ sudo nano /etc/rc.localAjoutez vos commandes entre "#! /bin/bash" et "exit 0", comme indiqué ci-dessous :
#! /bin/bashchemin/vers/mon_script.sh
sortie 0
Faire rc.fichier local exécutable en exécutant la commande ci-dessous :
$ sudo chmod +x /etc/rc.localRedémarrez simplement pour que le script de démarrage prenne effet.
Conclusion
Voici quelques méthodes qui peuvent être utilisées pour exécuter automatiquement des scripts et des applications au démarrage. Si vous cherchez à exécuter des scripts qui ne nécessitent pas d'accès root, je vous recommande d'utiliser l'application GUI « Applications de démarrage ». Si vous souhaitez exécuter des applications et des scripts avec un accès root, je vous suggère de créer un service systemd au niveau du système.
A propos de l'auteur
Nitesh Kumar
Je suis un développeur de logiciels indépendant et un rédacteur de contenu qui aime Linux, les logiciels open source et la communauté des logiciels libres.
Voir tous les messages