21 votes

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

J'ai quelques services qui fonctionnent au démarrage mais j'ai oublié comment je les ai configurés ! Si je veux modifier leur activité, comment puis-je le faire ? Par exemple, je peux désactiver le démarrage d'un service au démarrage ou utiliser une autre méthode pour le démarrer.

Plus précisément, j'ai un service openvpn qui fonctionne bien au démarrage, mais certains tutoriels disent que je devrais lier le service des programmes de partage de fichiers au vpn lui-même, de sorte que si le vpn tombe en panne, le service de partage de fichiers tombe aussi en panne. Mais je pense que le fonctionnement automatique de mon vpn complique peut-être les choses et que je devrais le désactiver ou modifier la façon dont il se lance. Mais comment vérifier ?

30voto

MariusMatutiae Points 45233

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 plus), voir en bas de page .

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 semblable à celle-ci :

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

El +'s indiquent les services en cours d'exécution, le -'s services pas en cours, le ?'s les services qui ne permettent pas statut comme commande possible : ce sont principalement des commandes qui n'ont pas besoin d'être exécutées tout le temps, juste occasionnellement.

Pour en revenir à votre question, vous devez comprendre niveau d'exécution 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 le champ /etc/inittab dans ma framboise

 # The default runlevel.
 id:2:initdefault:

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

 # runlevel
 N 2

(dans mon cas, un serveur headless). Les autres niveaux d'exécution sont (toujours d'après é/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 aussi identifié comme S.

Dans un démarrage normal, on commence donc à 2, et on progresse 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 Démarrage par défaut dans tous les fichiers de /etc/init.d/ C'est là que sont conservés les fichiers qui identifient les différents services. La ligne en question identifie le niveau d'exécution où chaque service doit être lancé. Si un service est démarré au niveau d'exécution N, lorsque le système passe à 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 exacte des différents stades auxquels les services sont lancés. Mais au sein d'un même niveau d'exécution, les lignes Required-Start et Should-Start définissent les dépendances dures et douces pour le service en question, c'est-à-dire des services qui doit courir et devrait exécuté avant le service examiné. Sans les services Required-Start, le service en question échouera, sans les services Should-Start, il n'y aura pas d'échec général, peut-être juste l'absence de certaines fonctionnalités utiles. La même chose se produit lors de l'arrêt avec Required-Stop et Should-Stop.

SYSTEMD :

La commande pour lister tous les services est

systemctl list-unit-files

qui vous fournira de nombreuses informations. Pour sélectionner tous les services activé , i.e ceux qui sont lancés au démarrage, il suffit de lire 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 OS a en mémoire = l'OS pense qu'il en a besoin), alors que systemctl list-unit-files affichera tous les services installés, y compris ceux qui sont masqué ( c'est-à-dire ceux qui sont censés ne jamais être démarrés, même manuellement), et ceux qu'il va pas activer, qui sont appelés static . En d'autres termes, la commande que j'ai suggérée est plus complète que celle qui énumère seulement actif services.

NB Systemd est très différent des systèmes d'initialisation précédents. En particulier, il n'a pas niveaux de fonctionnement mais cibles . niveaux de fonctionnement existent toujours pour des raisons de compatibilité, et peuvent être vues comme des cibles spécifiques en listant toutes les cibles disponibles via

systemctl list-unit-files --type=target

alors 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 .

8voto

jjurm Points 201

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

Pour installer l'outil

sudo apt-get install rcconf

Et il est très simple de l'utiliser avec l'interface utilisateur texte.

sudo rcconf

3voto

Sirion Points 11
sudo nano /etc/rc.local

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X