GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir quels services s'exécutent au démarrage sur Raspberry Pi ? (raspbian)

Je suppose que vous avez un Raspberry utilisant raspian, qui, à ma connaissance, n'est pas encore passé à systemd . Dans ce cas, la réponse est la suivante.

EDIT :pour systemd (Jessie ou version ultérieure), voir en bas .

Tout d'abord, vous pouvez déterminer quel système est actuellement en cours d'exécution au moyen de la commande :

  sudo service --status-all

Vous obtiendrez une liste un peu comme celle-ci :

  [ + ]  triggerhappy
  [ + ]  udev
  [ ? ]  udev-mtab
  [ ? ]  umountfs
  [ ? ]  umountnfs.sh
  [ ? ]  umountroot
  [ - ]  urandom
  [ + ]  vsftpd
  [ + ]  weewx
  [ - ]  x11-common

Les + indiquent les services en cours d'exécution, les -'s services pas courir, les ?'s services qui n'autorisent pas le statut en tant que commande possible :il s'agit principalement de commandes qui n'ont pas besoin d'être exécutées tout le temps, juste de temps en temps.

Pour revenir à votre question, vous devez comprendre le niveau d'exécution s sous Linux. Les niveaux d'exécution (0-6 + S) identifient les services qui peuvent/doivent être exécutés. Une séquence de démarrage progresse à partir d'un niveau d'exécution initial (spécifié dans /etc/inittab , dans mon Framboise

 # The default runlevel.
 id:2:initdefault:

cette ligne l'identifie comme 2, puis progresse vers le niveau d'exécution final standard de votre distribution (de 2 à 5). Vous identifiez votre niveau d'exécution actuel au moyen de la commande

 # runlevel
 N 2

(dans mon cas, un serveur sans tête). Les autres niveaux d'exécution sont (toujours depuis é/etc/inittab*) :

 # Runlevel 0 is halt.
 # Runlevel 1 is single-user.
 # Runlevels 2-5 are multi-user.
 # Runlevel 6 is reboot.

L'utilisateur unique (1) est souvent également identifié comme S.

Dans un démarrage normal, vous commencez donc à 2 et progressez jusqu'à 5. Pour trouver les services démarrés dans cette progression, lancez la commande :

 # grep -nrI Default-Start /etc/init.d
 umountroot:7:# Default-Start:
 checkroot.sh:8:# Default-Start:     S
 kbd:6:# Default-Start:     S
 isc-dhcp-server:11:# Default-Start:     2 3 4 5
 mountkernfs.sh:7:# Default-Start:     S
 hostname.sh:7:# Default-Start:     S
 mountnfs.sh:7:# Default-Start:     S
 halt:6:# Default-Start:
 dphys-swapfile:20:# Default-Start:     2 3 4 5
 bootlogs:7:# Default-Start:     1 2 3 4 5
 rc.local:6:# Default-Start:     2 3 4 5
 hostapd:9:# Default-Start:      2 3 4 5
 keyboard-setup:8:# Default-Start:     S
 lightdm:7:# Default-Start:     2 3 4 5
 procps:11:# Default-Start:     S
 mysql:9:# Default-Start:     2 3 4 5
 single:6:# Default-Start:     1
 vsftpd:7:# Default-Start:       2 3 4 5
 samba:7:# Default-Start:     2 3 4 5
 mountall.sh:6:# Default-Start:     S
 weewx:20:# Default-Start:     2 3 4 5
 umountnfs.sh:7:# Default-Start:
 triggerhappy:6:# Default-Start:     2 3 4 5
 ifplugd:24:# Default-Start:     2 3 4 5
 alsa-utils:9:# Default-Start:     S
 bootmisc.sh:7:# Default-Start:     S
 sendsigs:6:# Default-Start:
 console-setup:7:# Default-Start:     S
 nfs-common:7:# Default-Start:     2 3 4 5 S
 checkroot-bootclean.sh:6:# Default-Start:     S
 rsyslog:7:# Default-Start:     2 3 4 5
 x11-common:7:# Default-Start:     S
 mountdevsubfs.sh:7:# Default-Start:     S
 cron:10:# Default-Start:     2 3 4 5
 mountnfs-bootclean.sh:6:# Default-Start:     S
 mountall-bootclean.sh:6:# Default-Start:     S
 screen-cleanup:11:# Default-Start:     S
 udev:6:# Default-Start:     S
 ssh:7:# Default-Start:  2 3 4 5
 haveged:8:# Default-Start:     2 3 4 5
 hwclock.sh:26:# Default-Start:     S
 plymouth:9:# Default-Start:     2 3 4 5
 motd:7:# Default-Start:     1 2 3 4 5
 killprocs:6:# Default-Start:     1
 networking:6:# Default-Start:     S
 fake-hwclock:9:# Default-Start:     S
 udev-mtab:6:# Default-Start:     S
 apache2:6:# Default-Start:     2 3 4 5
 reboot:6:# Default-Start:
 umountfs:6:# Default-Start:
 plymouth-log:9:# Default-Start: S
 openvpn:11:# Default-Start:     2 3 4 5
 kmod:8:# Default-Start:     S
 ntp:7:# Default-Start:   2 3 4 5
 rpcbind:9:# Default-Start:     S 2 3 4 5
 urandom:6:# Default-Start:     S
 rmnologin:6:# Default-Start:     2 3 4 5
 checkfs.sh:7:# Default-Start:     S
 sudo:8:# Default-Start:     2 3 4 5
 mtab.sh:6:# Default-Start:     S
 dbus:6:# Default-Start:     2 3 4 5
 rsync:8:# Default-Start:     2 3 4 5

Cela imprime la ligne qui commence par Default-Start dans tous les fichiers de /etc/init.d/ , où sont conservés les fichiers identifiant les différents services. La ligne en question identifie le niveau d'exécution où chaque service doit être démarré. Si un service est démarré au niveau d'exécution N, lorsque le système progresse vers N+1, il n'a pas besoin d'être redémarré, mais s'il n'est pas en cours d'exécution, il est démarré.

Cela vous donne une idée précise des différentes étapes de démarrage des services. Mais dans le même niveau d'exécution, les lignes Required-Start et Should-Start définissent des dépendances matérielles et logicielles pour le service en question, c'est-à-dire services qui doivent courir et devrait exécuté avant le service en cours d'examen. Sans les services Required-Start, le service en question échouera, sans les services Should-Start à la place, il n'y aura pas d'échec général, peut-être juste le manque de certaines fonctionnalités utiles. La même chose se produit à l'arrêt avec Required-Stop et Should-Stop.

SYSTEMD :

La commande pour lister tous les services est

systemctl list-unit-files

qui va cracher beaucoup d'informations. Pour sélectionner tous les services activés , c'est-à-dire , ceux qui sont démarrés au démarrage, il suffit de grep la commande ci-dessus comme suit :

 systemctl list-unit-files | grep enabled 

Je préfère cette commande à systemctl list-units  :la différence est que celui-ci n'affichera que les services que votre système d'exploitation a en mémoire =le système d'exploitation pense en avoir besoin), tandis que systemctl list-unit-files affichera tous les services installés, y compris ceux qui sont masqués (c'est-à-dire ceux qui sont censés ne jamais être démarrés, même pas manuellement), et ceux qu'il ne sera pas activate, qui sont appelés statiques . En d'autres termes, la commande que j'ai suggérée est plus complète que celle qui ne liste que active prestations de service.

NB :systemd est très différent des systèmes init précédents. En particulier, il n'a pas de niveaux d'exécution , mais cibles . niveaux d'exécution existent toujours pour des raisons de compatibilité, et peuvent être considérées comme des cibles spécifiques en répertoriant toutes les cibles disponibles via

systemctl list-unit-files --type=target

tandis que vous pouvez voir votre cible actuelle au moyen de

$ systemctl get-default
  graphical.target

Pour en savoir plus, vous pouvez lire l'excellente page d'introduction de DigitalOcean.


Pour une gestion simple du service de démarrage sur Raspberry Pi, je recommande l'outil rcconf . Il vous permet d'activer/désactiver facilement les services en /etc/init.d/ . Vous pouvez également voir s'ils sont activés et s'exécuteront au démarrage.

Pour installer l'outil

sudo apt-get install rcconf

Et est très simple à utiliser avec l'interface utilisateur texte

sudo rcconf

sudo nano /etc/rc.local

C'est ici que vous insérez le fichier de commandes ou les commandes à exécuter au démarrage. Je lance aussi automatiquement Openvpn au démarrage :)


Linux
  1. Comment dire à Cron d'exécuter une commande tous les deux jours (pair/impair) ?

  2. Comment puis-je savoir sous Linux quel processus a envoyé un signal à mon processus

  3. Comment exécuter sbt en tant que démon?

  4. Comment dire à Dolphin quels fichiers cacher ?

  5. Comment modifier l'ordre de démarrage/démarrage des services Linux ?

Comment répertorier les services de démarrage au démarrage sous Linux

Comment exécuter des pods en tant que services systemd avec Podman

Comment installer le système d'exploitation Raspbian sur Raspberry Pi

Comment installer le système d'exploitation Raspbian de Raspberry Pi avec Pixel Desktop sur n'importe quel ordinateur

Comment exécuter un script bash

Comment dire à Xargs quel argument choisir ??