Commande pour lister les services qui démarrent au démarrage?


144

Existe-t-il une commande permettant de répertorier les services exécutés au démarrage? J'imagine que cela impliquerait l'analyse syntaxique /etc/init.d/et les divers /etc/rc.*répertoires.

Réponses:


104

Vous pouvez simplement utiliser la initctl listcommande shell pour lister le contenu de /etc/initla dbus-sendcommande plutôt que celle suggérée .


2
Est-ce que cela fonctionne dans Ubuntu 18.04? Je reçois "initctl: command not found" (à bash)
— Sanjay Manohar

121

La réponse rapide est: Cela dépend de votre initsystème.

La réponse longue est la suivante : Pour les versions actuelles d'Ubuntu, vous avez probablement un mélange de Upstart et SystemV . Les nouvelles versions d'Ubuntu après 15.04 "Vivid Vervet" (et d'autres distributions Linux comme RHEL / CentOS 7) commencent à utiliser SystemD .

Parvenu

Pour lister tous les services:

initctl list

Pour répertorier tous les services Upstart et les exécuter initctl show-config, cette option peut être utile:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

Système V

Pour lister tous les services:

service --status-all

OU:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

Pour lister tous les services:

systemctl list-unit-files --type=service

OU:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

9
Cela devrait être la réponse acceptée.
— Sjas

service --status-allN'indique PAS si les services sont activés pour démarrer au démarrage, du moins pas sous Ubuntu 16. Il indique si les services sont en cours d'exécution ou non.
— Wildcard

1
Je devais sudo service --status-allobtenir tous les services pour apparaître. Quelques-uns étaient cachés lorsque je ne fonctionnais que service --status-allsur un compte non root.
— Phlucious

@ Phlucious: Merci d'avoir mentionné cela. Je suppose qu'il était bien connu que ces commandes sont généralement exécutées en tant que root ( systemctl, service, initctl...) comme ils sont habituellement considérés comme les commandes d'administration du système.
— TrinitronX

13

Les répertoires /etc/init.det /etc/rc.*ont été remplacés par l' upstartoutil ' ' init. Bien que les scripts de ces répertoires soient exécutés comme prévu, la nouvelle méthode pour exécuter des tâches sur init est définie par les fichiers de/etc/init/

Vous pouvez répertorier tous les travaux à venir en interrogeant upstart sur dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Vous devrez peut-être changer 0_6pour refléter la version d’upstart que vous avez. Cette commande fonctionne sur mon installation lucide.


3
@ Eric H: Pourriez-vous définir la réponse ci-dessous comme étant correcte - initctl listest beaucoup plus agréable que cette commande dbus. J'aimerais laisser cette réponse ici pour référence (plutôt que de la supprimer complètement) cependant.
— Jeremy Kerr le

12

Si vous voulez une belle représentation graphique des services et du temps qu'il faut pour démarrer, essayez:

apt-get install bootchart

11

Identifiant utilisé initctl show-config <servicename>pour vraiment savoir quand / si votre service va démarrer au démarrage.

Ainsi:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

Ou pour le démon idmap NFS4:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig est préférable uniquement sur les systèmes basés sur RedHat à l’imho.


1
C'est la bonne réponse. Je ne sais pas pourquoi toutes les réponses fausses et incomplètes sont si hautement votées.
— Cerin

1
Cela ne marche pas pour ceux qui utilisent SysV, je suis d’accord pour dire que c’est une bonne réponse mais elle est incomplète.
— Gabriel Netto

9

Le 12.04, nous pourrions utiliser:

sudo apt-get install chkconfig
chkconfig --list

mais il a été supprimé en 12.10 .

Exemple de sortie:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on

2
Ne fonctionne pas dans Ubuntu. packages.ubuntu.com/…
— AB

@AB merci de me le faire savoir! De nos jours, il est rare que les électeurs du bas fassent leurs commentaires: cela nécessite du courage et me permet d’apprendre. mis à jour avec la version dans laquelle il fonctionne.
— Ciro Santilli a rejoint le forum



0

Outre les services système et les scripts sous:

/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /

Il existe probablement aussi des applications AutoStart , par exemple:

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"

-2

En utilisant gawk:

ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'

Exemple de sortie:

$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.