W systemie Windows mam menedżera usług, w którym widzę wszystkie usługi systemowe, które można uruchomić przez sam system Windows, konfiguruję używanego przez niego użytkownika, zarządzanie prawami, i mogę przekazywać zmienne i inne informacje do usług , Mogę je nazwać i mogę tworzyć duplikaty usług jednego programu i tak dalej. Mam więc główne narzędzie do zarządzania w systemie Windows.
Jak mogę zrobić to samo w systemie Linux? W jaki sposób mogę uruchomić, aby uruchomić „svnserve” podczas uruchamiania lub jak skonfigurować usługi do działania w specjalnym kontekście. Jak mogę wyświetlić wszystkie „zaprogramowane” usługi?
server
polecenia w Debianie, zobacz unix.stackexchange.com/q/226089/130402Odpowiedzi:
Obecnie istnieją 3 główne systemy inicjujące używane przez Linuksa. Kilka lat temu był tylko jeden, SysVinit. Ale SysVinit poważnie brakowało takich możliwości, jak wykres zależności zależności od usług, więc do tej pory był on przestarzały w większości dystrybucji. Obecnie większość dystrybucji przechodzi na systemd . Chociaż jest też dobry początek .
Ale oto odpowiedź na twoje pytanie dla każdego z 3 systemów inicjujących:
SysVinit
SysVinit jest obecnie używany przez Debian i RedHat. Chociaż następna wersja RedHat (7) będzie używać systemd.
Uniwersalny sposób włączania usług SysVinit podczas rozruchu polega na ich dowiązaniu symbolicznym w
/etc/rc3.d
(lub/etc/rc2.d
). Wszystkie usługi można znaleźć w/etc/init.d
. Należy jednak pamiętać, że dystrybucje często mają własne narzędzie do zarządzania tymi plikami, a zamiast tego należy użyć tego narzędzia. (Fedora / RedHat maservice
ichkconfig
Ubuntu maupdate-rc.d
)Lista usług:
Uruchomić usługę:
lub
Zatrzymaj usługę:
lub
Włącz usługę:
(
S95
służy do określenia kolejności. S01 uruchomi się przed S02 itp.)Wyłącz usługę:
Systemd
Najbardziej zauważalną dystrybucją używającą systemd jest Fedora. Chociaż jest używany przez wiele innych. Dodatkowo, z uwagi na to, że Debian zdecydował się na systemd over upstart, stanie się defacto systemem upstart dla większości dystrybucji (ubuntu już zapowiedziało, że będzie upstart dla systemd).
Lista usług:
Uruchomić usługę:
Zatrzymaj usługę:
Włącz usługę:
Wyłącz usługę:
Dorobkiewicz
Upstart został opracowany przez ludzi z Ubuntu. Ale kiedy Debian zdecydował się na systemd , Ubuntu ogłosiło, że porzuci start .
UpHart był również krótko używany przez RedHat, ponieważ jest obecny w RHEL-6, ale nie jest powszechnie używany.
Lista usług:
Uruchomić usługę:
Zatrzymaj usługę:
Włącz usługę:
Niestety 2 sposoby:
Będzie plik
/etc/default/{SERVICENAME}
zawierający linięENABLED=...
. Zmień tę linię naENABLED=1
.Będzie plik
/etc/init/{SERVICENAME}.override
. Upewnij się, że zawierastart
(lub jest całkowicie nieobecny), a niemanual
.Wyłącz usługę:
Uwaga: Istnieje również system inicjujący „OpenRC”, z którego korzysta Gentoo. Obecnie Gentoo jest jedyną dystrybucją, która z niego korzysta, i nie jest rozważana do użytku ani obsługiwana przez żadną inną dystrybucję. Więc nie omawiam jego użycia (choć jeśli tak, to mogę to dodać).
źródło
chkconfig
iupdate-rc.d
są wymienione. Zobacz drugi akapit pod SysVinit :-)Różne dystrybucje używają różnych mechanizmów do zarządzania usługami. Oprogramowanie do zarządzania usługami nazywa się init , od tradycyjnej nazwy pierwszego procesu (z identyfikatorem procesu 1), który odpowiada za uruchomienie innych.
Debian używa tradycyjnego wariantu SysVinit z init. W tym systemie w katalogu znajduje się kolekcja skryptów
/etc/init
(ta i inna lokalizacja mogą się nieznacznie różnić między dystrybucjami korzystającymi z SysVinit). Skrypty te nie są wywoływane bezpośrednio, ale poprzez dowiązania symboliczne w katalogach/etc/rc?.d
. To obecność i nazwa tych symbolicznych łączy decyduje o uruchomieniu usług. Aby uzyskać więcej informacji, przeczytaj rozdział o init w Debian Reference .Sprawdź,
/etc/rc?.d
jakie usługi są już dostępne. Litera lub cyfra przed kropką to poziom działania; wpisy, których nazwa zaczyna się od,S
są wykonywane z argumentemstart
podczas wchodzenia na poziom uruchamiania, a wpisy, których nazwa zaczyna się od,K
są wykonywane przy opuszczaniu poziomu pracy. Normalna sekwencja poziomu uruchamiania to: S podczas rozruchu (tak/etc/rcS.d/S*
są wykonywane), a następnie 2 (tak/etc/rc2.d/S*
są wykonywane). W czasie zamykania/etc/rc2.d/K*
są wykonywane, a następnie poziom uruchamiania przełącza się na 0 (lub 6 w celu ponownego uruchomienia).Krótko mówiąc, jeśli chcesz utworzyć skrypt startowy dla nowej usługi:
/etc/init.d
. Ten skrypt musi przyjmować jeden argument, który może byćstart
,stop
,force-reload
,restart
lub (opcjonalnie)reload
lubstatus
. Różnica pomiędzyreload
arestart
jestrestart
to równoważnestop
następniestart
czasreload
przeładowuje konfigurację bez zatrzymywania nic (jeżeli dana usługa to);force-reload
robi,reload
jeśli są dostępne irestart
inaczej. Zobacz istniejące pliki i Tworzenie skryptów uruchamianych przy starcie systemu Debian na przykład.update-rc.d
aby utworzyć symboliczne linki do uruchomienia i zatrzymania usługi. Większość usług działa na poziomach 2, 3, 4 i 5.Pamiętaj, że aby zapewnić dostęp do svn, łatwiej jest skonfigurować Apache i używać protokołu HTTP lub HTTPS. Ma to tę dodatkową zaletę, że umożliwia szybkie przeglądanie repozytorium przez przeglądarkę internetową.
źródło
Z tradycyjnego tła uniksowego w usługach nie ma nic specjalnego. Usługi to tylko proces, ale z dwoma wyjątkami: nie potrzebują terminala i zaczynają się przy starcie systemu. sposób, w jaki zaczynają się przy starcie, zależy od init (którym może być sysv init, bsd init, upstart, systemd lub coś innego; sprawdź swoją stronę podręcznika użytkownika dla init) i od tego, czy używasz opakowania dla zadania czy konfiguracji init. Nic nie stoi na przeszkodzie, abyś uruchomił usługę z terminala, w rzeczywistości jest to powszechne do celów testowych.
źródło