Vraag Commando om services op te noemen die starten bij het opstarten?


Is er een opdracht om services te vermelden die bij het opstarten worden uitgevoerd? Ik stel me voor dat het ontleden zou inhouden /etc/init.d/en de verschillende /etc/rc.* directories.


119
2017-07-28 23:40


oorsprong




antwoorden:


U kunt eenvoudig de initctl list shell-opdracht om de inhoud van te vermelden /etc/init in plaats van de voorgestelde dbus-send opdracht.


102
2017-10-13 02:04





Het snelle antwoord is: het hangt van je af init systeem.

Het lange antwoord is: voor de huidige versies van Ubuntu, heb je waarschijnlijk een mix van Parvenu, en SystemV. Nieuwere versies van Ubuntu na 15.04 "Vivid Vervet" (en andere Linux-distributies zoals RHEL / CentOS 7) gaan van start systemd.

Parvenu

Om alle diensten op te sommen:

initctl list

Om alle Upstart-services op te noemen en uit te voeren initctl show-config op hen kan deze one-liner nuttig zijn:

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

Systeem V

Om alle diensten op te sommen:

service --status-all

OF:

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

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

systemd

Om alle diensten op te sommen:

systemctl list-unit-files --type=service

OF:

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

85
2017-09-27 03:49



Dit zou het geaccepteerde antwoord moeten zijn. - sjas


De /etc/init.d en /etc/rc.* directories zijn vervangen door de 'upstart'init tool. Hoewel scripts in deze mappen worden uitgevoerd zoals verwacht, wordt de nieuwe methode voor het uitvoeren van dingen op init gedefinieerd door bestanden in /etc/init/

U kunt alle nieuwe starttaken weergeven door een vraag te stellen aan parvenu over dbus:

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

Je moet misschien veranderen 0_6 om de versie van de parvenu die je hebt te weerspiegelen. Deze opdracht werkt op mijn lucide installatie.


13
2017-07-29 03:30



@Eric H: Kon je het antwoord hieronder als correct instellen - initctl list is veel leuker dan deze dbus-opdracht. Ik wil dit antwoord hier als referentie achterlaten (in plaats van het volledig te verwijderen). - Jeremy Kerr


Als je een mooie grafische weergave van de services wilt en tijd nodig hebt om te proberen:

apt-get install bootchart

12
2017-10-13 03:39





Id gebruik initctl show-config <servicename> om echt de details te krijgen van wanneer / of uw service zal starten tijdens het opstarten.

Zoals zo:

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

Of voor NFS4 idmap-daemon:

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

chkconfig heeft alleen de voorkeur op systemen op basis van RedHat imho.


11
2017-07-21 10:46



Dit is het juiste antwoord. Ik heb geen idee waarom alle verkeerde en onvolledige antwoorden zo op de voorgrond staan. - Cerin
Dit doetst voor mensen die SysV gebruiken, ik ben het ermee eens dat dit een goed antwoord is maar het is onvolledig. - Gabriel Netto


Op 12.04 konden we gebruiken:

sudo apt-get install chkconfig
chkconfig --list

maar het was verwijderd in 12.10.

Voorbeelduitvoer:

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



Werkt niet in Ubuntu. packages.ubuntu.com/... - A.B.
@ A.B. bedankt voor het laten weten! Het is zeldzaam voor downvoters om tegenwoordig te reageren: het vereist moed en laat me leren. bijgewerkt met de versie waarin het werkt. - Ciro Santilli 新疆改造中心 六四事件 法轮功
Op precieze: packages.ubuntu.com/precise/chkconfig - Ciro Santilli 新疆改造中心 六四事件 法轮功


Gawk gebruiken:

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

Voorbeelduitvoer:

$ 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