GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est l'équivalent Linux du démarrage de Windows ?

Quelque chose comme Cron ?

Notez le @reboot entrée

C'est l'approche la plus flexible et celle qui ressemble le plus aux "tâches planifiées" de Windows (en fait, mieux).


Démarrage automatique de Xorg

Outre les scripts de démarrage au niveau du système, votre environnement de bureau peut avoir sa propre façon d'exécuter automatiquement des programmes. Le dossier .config/autostart est censé être un moyen indépendant du bureau de définir les entrées d'exécution automatique. /etc/xdg/autostart est pour la configuration à l'échelle du système. Détails sur la spécification sur http://developer.gnome.org/autostart-spec/.

Pour LXDE, les entrées de démarrage automatique peuvent également être définies dans ~/.config/lxsession/LXDE/autostart .

C'est un peu différent si vous devez exécuter vos scripts après le réseau est opérationnel. Dans ce cas, vous devez vérifier les scripts post-connexion spéciaux qui peuvent être définis pour votre gestionnaire de réseau. Les deux NetworkManager et wicd ont leurs propres façons de spécifier les entrées d'exécution automatique post-connexion. Si le réseau est configuré via ifupdown , alors les scripts post-up peuvent être placés dans le /etc/network/if-up.d/ dossier. Mais une meilleure approche pour exécuter des scripts post-connexion pourrait être systemd (pour les systèmes qui le prennent en charge, ce qui représente la majorité des distributions modernes).

Démarrage automatique en tant que service systemd

Si la chose que vous voulez démarrer automatiquement n'est pas une application graphique qui nécessite un bureau, il est préférable d'éviter d'utiliser les fonctionnalités de démarrage automatique fournies par xorg ou par votre environnement de bureau actuel.

systemd est devenu omniprésent dans de nombreuses distributions modernes, et il offre beaucoup de contrôle et de flexibilité en termes de démarrage et d'exécution de vos services.

Je vais résumer quelques avantages (systemd peut faire beaucoup plus ):

  • Exécuter en tant que root ou en tant qu'utilisateur spécifique :par ex. User=myuser
  • Redémarrer les services en cas d'échec avec des délais configurables :Restart=on-failure|on-watchdog|on-abnormal|always
  • Définition du type de service :Type=simple|forking|oneshot|notify|dbus
  • Établissez les conditions préalables au démarrage et les dépendances, c'est-à-dire que vous pouvez configurer votre service pour qu'il démarre une fois le réseau opérationnel (Wants=network-online.target dans le [Unit] rubrique).

Un exemple de service qui démarre un démon telegram-cli. Placez-le en /etc/systemd/system/tg.service .

[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli

User=jicu

[Install]
WantedBy=multi-user.target

Vous pouvez maintenant activer le démarrage automatique du service :

sudo systemctl enable tg

Démarrer le service :

sudo systemctl start tg

Arrêtez le service :

sudo systemctl stop tg

Vérifiez l'état :

systemctl status tg

Désactiver le service :

sudo systemctl disable tg

Pour vous épargner une saisie supplémentaire, vous pouvez ajouter votre ~/.bashrc la ligne alias sc='sudo systemctl $*' alors vous pourrez raccourcir les commandes ci-dessus, par exemple. sc start tg .

Plus d'informations :

  • Comprendre systemd
  • services systemd
  • unités systemd

Oui il est possible de lancer des programmes au démarrage sous Linux en définissant les chemins vers les exécutables en rc.local qui réside soit dans le /etc ou /etc/rc.d répertoire, par exemple :

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/path/to/executable

Remarque :n'oubliez pas d'attribuer les droits exécutables comme décrit dans la documentation du fichier, c'est-à-dire Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.


Linux
  1. Quel est le meilleur VPS :Windows ou Linux ?

  2. Quel est l'équivalent Linux de la pause DOS ?

  3. Quel serait l'équivalent de l'API Win32 sous Linux ?

  4. Quel est l'équivalent de la commande updatedb de Linux pour Mac ?

  5. Quel est l'analogue Windows de la commande Linux watch ?

Linux vs Unix :Quelle est la différence ?

Qu'est-ce que le Shell sous Linux ?

Qu'est-ce que la commande kill sous Linux ?

Quel est l'équivalent Unix/Linux des E/S enregistrées ?

Quel est l'équivalent de la commande Linux sudo fdisk -l sous MacOS ?

Quel est l'équivalent d'Active Directory sous Linux