Was ist das systemctl-Äquivalent?


30

Ich konvertiere ein Paket von .rpm nach .deb mit diesem Tutorial . Um die Anwendung zu testen und zu debuggen, muss ich sie jedoch ausführen. In der Readme-Datei des Programms wird erklärt, wie es als Dienst ausgeführt wird mit:

systemctl enable progname.service
systemctl start progname.service

Was ist das Äquivalent auf Ubuntu für diese Befehle?


sudo service network-manager restart ist das, wonach ich gesucht habe, als ich das gefunden habe.
Martin Thoma

Ab 2018 verwendet Ubuntu das neuere Systemd systemctl(wie jedes andere System über Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). Das alte /usr/sbin/serviceDienstprogramm ruft auf, systemctlwenn auf dem System systemd ausgeführt wird.
Michael

Antworten:


12

Ubuntu plant / entwickelt derzeit die zukünftige Verwendung von systemd . Weitere Informationen finden Sie unter den folgenden Links: Vivid wechselt zum Booten mit systemd ... und Versionshinweisen: Boot- und Dienstverwaltung

Ich benutze 14.04.

Sie können den nativeren Befehl verwenden update-rc.d. Überprüfen Sie die Manpage.

Aktivieren eines Dienstes mit Standardeinstellungen (siehe Manpage):

sudo update-rc.d foo_service defaults

Deaktivieren eines Dienstes:

sudo update-rc.d foo_service remove

Beachten Sie, dass zum Entfernen ohne Fehlermeldung die Datei foo_service nicht vorhanden sein darf. Sie können jedoch Folgendes erzwingen:

sudo update-rc.d -f foo_service remove

4
Vielleicht gibt es nichts dagegen. 15.04 verwendet systemd.
muru

@muru Haben Sie eine Referenz, bitte? Bitte zögern Sie nicht, meine Antwort zu bearbeiten und die Leute wissen zu lassen.
Ely,

1
der Beitrag, der den Wechsel während der Entwicklung ankündigt: lists.ubuntu.com/archives/ubuntu-devel-announce/2015-March/… , die Versionshinweise der endgültigen Veröffentlichung: wiki.ubuntu.com/VividVervet/…
muru

5

systemctl ist das Steuerungsdienstprogramm für systemd:

http://www.freedesktop.org/software/systemd/man/systemctl.html

Beachten Sie, dass Ubuntu nicht systemd verwendet, sondern upstart, das im Prinzip ein paar der gleichen Dinge ausführt, aber einige unterschiedliche Konzepte hat.

Ohne viel Wissen über systemd und basierend auf dem, was ich in dem von mir geposteten Dokument gelesen habe, muss ein Dienst meiner Meinung nach nicht "aktiviert" werden. Wenn Sie die .conf-Datei für Ihren Dienst in / etc / init ablegen, wird upstart darauf aufmerksam.

Das ist der springende Punkt: Die systemd-Konfigurationsdatei für Ihren Dienst wird unter Ubuntu nicht unverändert funktionieren. Sie müssen dies in eine entsprechende Version für Upstart "übersetzen". Hier ist die Dokumentation für Emporkömmlinge:

http://upstart.ubuntu.com/cookbook/

Sobald Sie eine geeignete upstart .conf-Datei haben, können Sie einen Dienst starten (entspricht meiner Meinung nach systemctl start) mit:

start your-service

2
Das Problem ist, ab 13.10, Ubuntu tut logind der Nutzung systemd, die standardmäßig einen Laptop unterbricht , wenn der Deckel geschlossen ist. Wenn Sie möchten, dass der Bildschirm in diesem Fall gesperrt wird, müssen Sie einen systemd-Dienst vom Deckelverschluss abhängen und das tun, was Sie anscheinend benötigen systemctl. Siehe beispielsweise forum.xfce.org/viewtopic.php?id=8411 und bbs.archlinux.org/viewtopic.php?id=148829 .
Douglas Bagnall

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.