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.

Eric H
la source

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 .

Scott
la source
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
TrinitronX
la source
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.

Jeremy Kerr
la source
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
BuZZ-dEE
la source
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.

CBmemnon
la source
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
Ciro Santilli 改造 心心
la source
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
On Precise: packages.ubuntu.com/precise/chkconfig
Ciro Santilli a commencé à jouer
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"
Noam Manos
la source
-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
Carlos Alvsan
la source