Usługi.
W systemie dostępna jest spora liczba specjalnych „zadań” znacząco automatyzujących
pracę administratora. Zadania te są wywoływane w skryptach napisanych w języku powłok
W PLD możemy zarządzać tymi usługami ręcznie.
Przechodzimy do katalogu:
# /etc/rc.d/init.d/
W tym katalogu znajdują się nasze skrypty, które możemy wywoływać z odpowiednimi parametrami.
Uruchomienie bez parametru podaję listę możliwych dla skryptu akcji.
Jako przykład niech posłuży skrypt uruchamiający naszą kartę sieciową.
# ./network
Otrzymamy : Usage: ./network {start | stop | restart |
status}
Większość skryptów akceptuje
parametry start, stop restart, staus.
W dziale konfiguracje sieci przedstawiliśmy jak właczyć kartę sieciową ,a o
to wynik takiego dzialania:
# ./network stop
Shutting down interface
eth0.......................................[ DONE ]
# ./network start
Bringing up interface eth0...........................................[ DONE ]
# ./network restart
Shutting down interface eth0.......................................[ DONE ]
Bringing up interface eth0............................................[ DONE ]
Ten sam efekt można uzyskać nie wchodząc do katalogu /etc/rc.d/init.d/
Wykorzystujemy do tego celu program service
# service network start
# service network stop
W PLD zastosowano skrypty startowe System-V. Według tego schematu łącza symboliczne odpowiadające odpowiedniemu skryptowi
startowemu z katalogu /etc/rc.d/init.d/ są umieszczone w katalogach /etc/rc.d/rc(nr).d, gdzie nr odpowiada poziomowi pracy 1-6.
Aby dokładnie to zrozumieć napiszemy własny skrypt.
Uruchamiamy edytor tekstowy np. mcedit i piszemy:
#!/bin/bash
# skrypt - Wyswietla tekst
# chkconfig: 2354 20 80
# description: Tutaj opisujemy nasza usluge co
robi itd. \
# slash jest potrzebny zeby
dalej opisywac :)
#
2354 - okresla poziomy uruchomienia skryptu
#
20 - okresla piorytet startowy
#
80 - okresla piorytet stopu
PATH=/sbin:/usr/sbin:/bin:/usr/bin
# zmienna srodowiskowa
echo "Wlasnie napisales
swoja pierszwa usluge
:)"
Zapisujemy zmiany np. w pliku o nazwie skrypt
Nadajemy mu odpowiednie prawa
# chmod 754 skrypt
[Uwaga: Plik skrypt musi się
znajdować w katalogu /etc/rc.d/init.d/]
Aby nasz skrypt był uruchamiany, jako usługa przy starcie systemu korzystamy z programu chkconfig
Wydajemy polecenie:
# chkconfig --add skrypt
Teraz możemy sprawdzić czy nas skrypt jest uruchomiony. Wydajemy polecenie:
# chkconfig --list
network |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
random |
0:off |
1:on |
2:on |
3:on |
4:on |
5:on |
6:off |
single |
0:off |
1:on |
2:off |
3:off |
4:off |
5:off |
6:off |
sys-chroots |
0:off |
1:off |
2:off |
3:off |
4:off |
5:off |
6:off |
timezone |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
crond |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
exim |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
console |
0:off |
1:off |
2:off |
3:on |
4:on |
5:on |
6:off |
sshd |
0:off |
1:off |
2:off |
3:on |
4:on |
5:on |
6:off |
syslog-ng |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
skrypt |
0:off |
1:off |
2:on |
3:on |
4:on |
5:on |
6:off |
Widzimy, że nas skrypt jest uruchomiony na 2,3,4,5 poziomie tak jak zdeklarowaliśmy w pliku.
Niestety nasza usług nie posiada parametrów start, stop itp.
Aby obejrzeć jej działanie restartujemy (reboot) system. Podczas uruchamiania powinien pojawić się nasz tekst.
Jeżeli chcemy usunąć naszą usługę wydajemy polecenie:
# chkconfig --del skrypt
Zostało jeszcze tylko usunięcie pliku z katalogu /etc/rc.d/init.d/
# rm skrypt
Istnieje jeszcze inna metoda dodawania usługi.
Robimy symboliczne dowiązanie do naszego pliku w odpowiednim
katalogu (/etc/rc.d/rc(nr).d) lub po prostu go tam kopiujemy.
Standardowo robi to za nas polecenie chckconfig.
# ln –s /etc/rc.d/init.d/skrypt /etc/rc.d/rc3.d/skrypt
W ten sposób nasza usługa będzie działa na poziomie 3.
Osobiście nie polecamy takiego uruchamiania usług. Przede wszystkim dlatego, że nie będziemy mieli
możliwości podejrzenia w programie chkconfig na jakim poziomie działa nasz skrypt.
W PLD korzysta się najczęściej z trybów 3 i 5 rzadziej z: 1,2 i 4. Nigdy nie ustawiamy trybu 0 (restart) i 6( wyłączenie).
Dla zainteresowanych skrypt ten co jest wyżej J