Question Commande pour répertorier les services qui démarrent au démarrage?


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


119
2017-07-28 23:40


origine




Réponses:


Vous pouvez simplement utiliser le initctl list commande shell pour lister le contenu de /etc/init plutôt que le suggéré dbus-send commander.


102
2017-10-13 02:04





La réponse rapide est: cela dépend de votre init système.

La longue réponse est la suivante: pour les versions actuelles d'Ubuntu, vous avez probablement un mélange de Parvenu, et SystemV. Les nouvelles versions d’Ubuntu après 15.04 "Vivid Vervet" (et d’autres distributions Linux comme RHEL / CentOS 7) sont en train d’être utilisées SystemD.

Parvenu

Pour lister tous les services:

initctl list

Pour lister tous les services Upstart et exécuter initctl show-config sur eux, ce one-liner 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

85
2017-09-27 03:49



Cela devrait être la réponse acceptée. - sjas


le /etc/init.d et /etc/rc.* les annuaires ont été remplacés par le 'upstart'outil init. Bien que les scripts de ces répertoires soient exécutés comme prévu, la nouvelle méthode pour exécuter les choses sur init est définie par des fichiers dans /etc/init/

Vous pouvez lister tous les travaux en cours 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_6 pour refléter la version de démarrage que vous avez. Cette commande fonctionne sur mon installation lucide.


13
2017-07-29 03:30



@Eric H: Pourriez-vous définir la réponse ci-dessous comme étant correcte? - initctl list est beaucoup plus agréable que cette commande dbus. Je voudrais laisser cette réponse ici pour référence (plutôt que de la supprimer complètement). - Jeremy Kerr


Si vous voulez une belle représentation graphique des services et du temps nécessaire pour démarrer, essayez:

apt-get install bootchart

12
2017-10-13 03:39





Utilisation Id initctl show-config <servicename> pour vraiment obtenir les détails de quand / si votre service démarrera pendant le 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 n'est préférable que sur les systèmes basés sur RedHat.


11
2017-07-21 10:46



C'est la bonne réponse. Je ne sais pas pourquoi toutes les réponses erronées et incomplètes sont si fortement mises en avant. - Cerin
Ce dernier travail pour les personnes utilisant SysV, je reconnais que c'est une bonne réponse, mais elle est incomplète. - Gabriel Netto


Le 12.04, nous pourrions utiliser:

sudo apt-get install chkconfig
chkconfig --list

mais c'était enlevé en 12.10.

Sortie de l'échantillon:

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

8
2018-03-06 06:26



Ne fonctionne pas dans Ubuntu. packages.ubuntu.com/… - A.B.
@UN B. Merci de me le faire savoir! Il est rare que les avalistes commentent aujourd'hui: cela demande du courage et me permet d'apprendre. mis à jour avec la version dans laquelle il fonctionne - Ciro Santilli 新疆改造中心 六四事件 法轮功
Sur précis: packages.ubuntu.com/precise/chkconfig - Ciro Santilli 新疆改造中心 六四事件 法轮功


Utiliser 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)}}'

Sortie de l'échantillon:

$ 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

-2
2018-01-07 16:04