In Windows habe ich den Dienstmanager, in dem alle Systemdienste angezeigt werden, die über Windows selbst gestartet werden können, ich habe den verwendeten Benutzer eingerichtet, die Rechteverwaltung ist vorhanden, und ich kann Variablen und einige andere Informationen an die Dienste übergeben Ich kann sie benennen und Duplikatservices für ein Programm erstellen und so weiter. Ich habe also ein Hauptverwaltungstool in Windows.
Wie kann ich das auch unter Linux machen? Wie kann ich auslösen, dass "svnserve" beim Start ausgeführt wird, oder wie kann ich Dienste so konfigurieren, dass sie in einem bestimmten Kontext ausgeführt werden. Wie kann ich alle "programmierten" Dienste anzeigen?
server
Befehl unter Debian verwenden müssen, lesenAntworten:
Gegenwärtig werden 3 Haupt-Init-Systeme von Linux verwendet. Vor ein paar Jahren gab es nur einen, SysVinit. In SysVinit mangelte es jedoch stark an Funktionen wie der grafischen Darstellung von Dienstabhängigkeiten, sodass es in den meisten Distributionen mittlerweile veraltet ist. Derzeit wechseln die meisten Distributionen zu systemd . Es gibt aber auch Emporkömmlinge .
Aber hier ist die Antwort auf Ihre Frage für jedes der 3 Init-Systeme:
SysVinit
SysVinit wird derzeit von Debian und RedHat verwendet. Die nächste Version von RedHat (7) wird jedoch systemd verwenden.
Die universelle Möglichkeit, SysVinit-Dienste beim Booten zu aktivieren, besteht darin, sie mit
/etc/rc3.d
(oder/etc/rc2.d
) zu verknüpfen . Alle Dienstleistungen finden Sie in/etc/init.d
. Beachten Sie jedoch, dass Distributionen häufig über ein eigenes Tool zum Verwalten dieser Dateien verfügen und stattdessen dieses Tool verwendet werden sollte. (Fedora / RedHat hatservice
undchkconfig
, Ubuntu hatupdate-rc.d
)Liste Dienste:
Dienst starten:
oder
Dienst anhalten:
oder
Dienst aktivieren:
(Mit
S95
wird die Reihenfolge festgelegt. S01 startet vor S02 usw.)Dienst deaktivieren:
Systemd
Die bekannteste Distribution, die systemd verwendet, ist Fedora. Obwohl es von vielen anderen benutzt wird. Zusätzlich wird Debian, nachdem es sich entschieden hat, systemd anstelle von upstart zu verwenden, das defacto-upstart-System für die meisten Distributionen sein (Ubuntu hat bereits angekündigt, dass sie upstart für systemd löschen werden).
Liste Dienste:
Dienst starten:
Dienst anhalten:
Dienst aktivieren:
Dienst deaktivieren:
Emporkömmling
Upstart wurde von den Ubuntu-Leuten entwickelt. Aber nachdem sich Debian für systemd entschieden hatte , kündigte Ubuntu an, sie würden den Emporkömmling fallen lassen .
Upstart wurde auch kurz von RedHat verwendet, da es in RHEL-6 vorhanden ist, aber es wird nicht häufig verwendet.
Liste Dienste:
Dienst starten:
Dienst anhalten:
Dienst aktivieren:
2 Möglichkeiten leider:
Es wird eine Datei geben,
/etc/default/{SERVICENAME}
die eine Zeile enthältENABLED=...
. Ändern Sie diese Zeile inENABLED=1
.Es wird eine Datei geben
/etc/init/{SERVICENAME}.override
. Stellen Sie sicher, dass es enthältstart
(oder nicht vorhanden ist), nichtmanual
.Dienst deaktivieren:
Hinweis: Es gibt auch das von Gentoo verwendete Init-System 'OpenRC'. Derzeit ist Gentoo die einzige Distribution, die es verwendet, und es wird weder für die Verwendung in Betracht gezogen, noch von einer anderen Distribution unterstützt. Ich gehe also nicht auf seine Verwendung ein (obwohl ich es hinzufügen kann, wenn ich der Meinung bin, dass ich es tue).
quelle
chkconfig
undupdate-rc.d
werden erwähnt. Siehe zweiten Absatz unter SysVinit :-)Unterschiedliche Verteilungen verwenden unterschiedliche Mechanismen zum Verwalten von Diensten. Die Software zum Verwalten von Diensten heißt init , nach dem traditionellen Namen für den allerersten Prozess (mit der Prozess-ID 1), der für das Starten der anderen zuständig ist.
Debian verwendet die traditionelle SysVinit- Variante von init. Unter diesem System befindet sich eine Sammlung von Skripten im Verzeichnis
/etc/init
(dieser und andere Speicherorte können sich zwischen Distributionen, die SysVinit verwenden, geringfügig unterscheiden). Diese Skripte werden nicht direkt aufgerufen, sondern über symbolische Verknüpfungen in Verzeichnissen/etc/rc?.d
. Das Vorhandensein und der Name dieser symbolischen Links bestimmen, wann die Dienste gestartet werden. Weitere Einzelheiten finden Sie im Kapitel über Init in der Debian-Referenz .Schauen Sie sich an
/etc/rc?.d
, welche Dienste bereits vorhanden sind. Der Buchstabe oder die Ziffer vor dem Punkt ist der Runlevel. Einträge, deren Name mit beginnt,S
werden bei derstart
Eingabe des Runlevels mit dem Argument ausgeführt , und Einträge, deren Name mit beginnt,K
werden beim Verlassen des Runlevels ausgeführt. Die normale Runlevel-Sequenz lautet: S während des Bootens (/etc/rcS.d/S*
wird ausgeführt), dann 2 (/etc/rc2.d/S*
wird ausgeführt). Zum Zeitpunkt des Herunterfahrens/etc/rc2.d/K*
werden ausgeführt, dann wechselt der Runlevel auf 0 (oder 6 für einen Neustart).Kurz gesagt, wenn Sie ein Startskript für einen neuen Dienst erstellen möchten:
/etc/init.d
. Dieses Skript muss ein Argument akzeptieren , die sein kannstart
,stop
,force-reload
,restart
, oder (optional)reload
oderstatus
. Der Unterschied zwischenreload
undrestart
ist , dassrestart
äquivalent ist ,stop
gefolgt von ,start
währendreload
neu lädt die Konfiguration ohne etwas zu stoppen (wenn der Dienst verfügbar ist);force-reload
tut,reload
wenn verfügbar undrestart
sonst. Beispiele finden Sie in den vorhandenen Dateien und Skripten, die beim Booten mit Debian ausgeführt werden .update-rc.d
den Befehl aus , um symbolische Links zum Starten und Beenden Ihres Dienstes zu erstellen. Die meisten Dienste werden in den Runlevels 2, 3, 4 und 5 ausgeführt.Beachten Sie, dass es für den SVN-Zugriff möglicherweise einfacher ist, Apache einzurichten und das HTTP- oder HTTPS-Protokoll zu verwenden. Dies hat den zusätzlichen Vorteil, dass das Repository schnell über einen Webbrowser durchsucht werden kann.
quelle
Ausgehend von einem traditionellen Unix-Hintergrund haben Services nichts Besonderes. Services sind nur Prozesse, aber mit zwei Ausnahmen: Sie benötigen kein Terminal und werden beim Booten gestartet. Wie sie beim Booten gestartet werden, hängt von init ab (dies kann sysv init, bsd init, upstart, systemd oder etwas anderes sein; überprüfen Sie Ihre Manpage auf init) und davon, ob Sie einen Wrapper für die Task oder für die init-Konfiguration verwenden. Nichts hindert Sie daran, einen Dienst von einem Terminal aus auszuführen. Dies ist in der Tat zu Testzwecken üblich.
quelle