systemy_operacyjne_cw_07_linux_apache_mysql.pdf

(168 KB) Pobierz
Microsoft Word - systemy_operacyjne_cw_07_linux_apache_mysql.docx
Ćwiczenie 7
Temat:
Usługi w systemie
Linux. Serwer
Apache i MySQL.
Cel ćwiczenia:
W tym ćwiczeniu student zapozna się z metodami uruchamiania usług
serwerowych w systemie Linux. Przedstawiona zostanie metoda definiowania
usług, które powinny być uruchamiane w poszczególnych poziomach rozruchu
sytemu. Jako przykład usług serwerowych przedstawiony zostanie serwer
WWW – Apache oraz baza danych MySQL.
306187823.002.png
Uwaga, niniejsze ćwiczenie powinno być realizowana z użyciem systemu
Ubuntu Server
Usługi systemowe
Usługi systemowe to programy działające w tle systemu, realizując określone zadania. Usługi
uruchamiane są wraz ze startem systemu operacyjnego według listy określonej przez
administratora systemu. W systemie Linux usługi uruchamiane są za pomocą polecenia:
service nazwa_usługi akcja
Akcjami możliwymi do wywołania dla usług są:
start – uruchomienie usługi
stop - zatrzymanie usługi
reload – ponowne wczytanie ustawień usługi
force-reload – wymuszenie ponownego wczytania ustawień
restart – ponowne uruchomienie usługi
try-restart – próba ponownego uruchomienia usługi
status – sprawdzenie statusu usługi
Skrypty uruchamiające usługi systemowe znajdują się w katalogu /etc/init.d/. W katalogu
tym znajdować się mogą zarówno skrypty jak i linki do nich. Jeśli administrator chce dodać
do systemu własną usługę wystarczy umieścić łącze do programu w w/w katalogu.
Dołączenia symboliczne w systemie Linux wykonuje się za pomocą polecenia ln, np.:
ln -s ścieżka_do_programu_usługi /etc/init.d/nazwa_dołączenia
Po stworzeniu takiego dowiązania można już odwoływać się do własnego programu
administracyjnego w sposób analogiczny jak w przypadku innych usług, np:
service nazwa_dołączenia start
Usługi systemowe
97
306187823.003.png
UWAGA! Jeśli własny program dołączany jest do usług serwerowych parametry
uruchomieniowe takie jak start, restart, stop itd. muszą zostać uwzględnione w programie,
tzn: program musi wykonywać odpowiednie akcje w zależności od parametru jego
wywołania.
Przykład
1. Aby sprawdzić, czy serwer pozwala na zdalne logowanie się do konsoli za pomocą SSH,
wywołać można usługę ssh z akcją „ status ” :
service ssh status
2. Aby wyłączyć możliwość logowania się do konsoli za pomocą SSH, wywołać należy
polecenie:
service ssh stop
3. I odpowiednio: start – w celu ponownego uruchomienia usługi.
4. Aby dołączyć własny skrypt administracyjny „users.sh” (znajdujący się NP. w katalogu
/root/tmp) do puli usług, należy stworzyć dołączenie symboliczne w katalogu init.d:
ln –s /root/tmp/users.sh /etc/init.d/users.sh
Od tego momentu można uruchamiać program poprzez komendę:
service users.sh start
Pamiętać należy, iż parametr {start|stop|restart|itd..} przekazywany podczas
uruchamiania programu musi zostać oprogramowany przez autora programu. Np. jeśli
program jest skryptem w języku powłoki BASH należy stworzyć odpowiednie instrukcje
warunkowe sprawdzające wartość parametru przekazanego podczas uruchamiania
(sprawdzenie wartości zmiennej $1)
Zadanie 1
1. Napisać program który jako parametr wejściowy przyjmuje wartość tekstową „start”
oraz „stop”.
Zadanie 1
98
306187823.004.png
2. Gdy jako parametr wejściowy podany zostanie parametr „start” program wykona
komendę „dhclient” aby pobrać adres z serwera DHCP dla wszystkich interfejsów
sieciowych.
3. Gdy jako parametr wejściowy podany zostanie parametr „stop” program wykona
komendę „ethX down” dla wszystkich kart sieciowych komputera.
4. Dodać program jako usługę systemową (utworzyć dołączenie do utworzonego
programu do katalogu /etc/init.d/
Usługi uruchamiane w poszczególnych poziomach rozruchu systemu
W systemach rodziny Linux wyróżnić można 7 poziomów rozruchu systemu
(numerowane od 0 – 6), z czego 2 z nich to symbole: wyłączenia systemu (symbol 0)
oraz ponownego uruchomienia systemu (reboot - symbol 6). W każdym z poziomów
może zostać zdefiniowany inny zestaw uruchamianych usług. Do wyświetlania usług
wraz z poziomami rozruchu systemu służy polecenie:
chkconfig --list
Polecenie wyświetla usługi wraz z poziomami rozruchu w których dane usługi są
uruchamiane.
Aby włączyć daną usługę w danym poziomie rozruchu użyć należy polecenia chkconfig z
flagą --level – które definiuje jakich poziomów rozruchu, a następnie wskazać usługę,
jakiej polecenie dotyczy wraz ze stanem usługi (on - włączona, off – wyłączona), np:
chkconfig --level NR_POZIOMU nazwa_usługi stan
UWAGA! Warto zaznaczyć, iż polecenie chkconfig jest najpopularniejszym programem
do zarządzania usługami w poszczególnych poziomach rozruchu systemu, niemniej
jednak w niektórych dystrybucjach systemu Linux program ten musi zostać
doinstalowany, a w przypadku kilku dystrybucji istnieją inne programu służące do
zarządzania usługami. Na przykład, w systemie Ubuntu Server polecenie chkconfig
poprawnie wyświetla usługi wraz z poziomami uruchamiania, jednak do konfiguracji
usług uruchamianych w poszczególnych poziomach rozruchu służy program
Usługi uruchamiane w poszczególnych poziomach rozruchu systemu
99
306187823.005.png
sysv-rc-conf, który ma taką samą składnie jak polecenie chkconfig w innych
dystrybucjach.
Instalacja menager’a:
apt-get install sysv-rc-conf
Uruchomienie programu w trybie „pseudograficznym”:
sysv-rc-conf
Określenie trybu usługi:
sysv-rc-conf --level NR_poziomu nazwa_usługi {on | off}
Dodawanie własnej usługi do danego poziomu rozruchu odbywa się poprzez utworzenie
w katalogu init.d dowiązania symbolicznego do programu, a następnie określeniu stanu
usługi w danym poziomie rozruch:
sysv-rc-conf --level NR_poziomu nazwa_usługi {on | off}
Poziom uruchamiania sytemu
Domyślny poziom rozruchu systemu Linux jest określany przez autorów systemu. Dla wielu
dystrybucji jest to najczęściej poziom nr 5, jednak nie ma co do tego zasady. Aby sprawdzić
na jakim poziomie pracuje w danej chwili system wydać należy polecenie:
runlevel
Polecenie zwraca aktualny i poprzedni poziom uruchomienia. Jeśli zwrócony numer
poprzedzony jest symbolem „N” oznacza to, iż w poprzednim stanem było ponowne
uruchomienie systemu.
Aby na stałe ustalić, w którym poziomie rozruchu powinien startować system, należy
dokonać wpisu w pliku (jeśli plik nie istnieje, należy go stworzyć):
/etc/inittab
Poziom uruchamiania sytemu
100
306187823.001.png
Zgłoś jeśli naruszono regulamin