systemctl disabled/enable usw.

werner

Suchtspielmacher (ehm.)
Registriert
20 Juli 2014
Beiträge
733
Ort
Mannheim
Hallo,

ich habe viel dazu gefunden, wie ich services disabled, enable, starte und stoppe. z.B. systemctl start smb.service

Doch was genau machen diese Befehle? Ändern sie eine Datei ab? Oder was passiert da im Hintergrund?
Konnte bisher nicht viel im Netz findet, vielleicht fehlen mir aber auch einfach ein paar gute Suchworte.

Wäre toll, wenn jemand mehr weiß, oder eine gute Quelle kennt! Danke.
 
In den service files unterhalb von /usr/lib/systemd findest du die Start/Stop-Kommandos, so wie damals in den init-Scripts – nur eben nicht mehr als Script.



Wenn du also systemctl start smbd.service eintippst, geht systemd ins Verzeichnis /usr/lib/systemd/system und findet die Datei smbd.service, in der Folgendes steht:
Code:
Expand Collapse Copy
[Unit]
Description=Samba SMB/CIFS server
After=network.target nmbd.service winbindd.service

[Service]
Type=forking
PIDFile=/var/run/smbd.pid
ExecStart=/usr/bin/smbd -D
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
Systemd schaut dann erst, ob alle Dienste in After gestartet sind und führt dann ExecStart aus. Ungefähr so, wie wenn Du einfach smbd -D in das Terminal eintippen würdest. PIDFile gibt noch den Pfad zum -File an, damit systemd wissen kann, ob der Service läuft oder nicht.

Im Hintergrund passiert natürlich noch mehr (cgroups und so), das kannst du dir anschauen.
 
Um mal bei dem Beispiel von phre4k zu bleiben...

systemctl enable smbd.service würde dann noch einen Symlink in /etc/systemd/system/multi-user.target/ erstellen
systemctl disable smbd.service würde ihn wieder entfernen

Genaueres kann man in der offiziellen Dokumentation von systemd nachlesen ( ). Das Arch-Wiki ist, wie so oft, auch sehr informativ ( ). Unabhängig ob man Arch nutzt oder nicht.
 
Zurück
Oben