SASA DESIGN

Open Your mind, Open Your Source Code!

Управление на services с update-rc.d в Debian/Ubuntu

17 октомври, 2008 – 6:47 am

Източник: Myfreesoft

Изключително лесен и невероятно полезен инструмент. Той се грижи за автоматичното прибавяне и премахване на необходимите линкове от /etc/init.d.

За пример ще вземем apache2.

debian:~# ls -l /etc/rc?.d/*apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc0.d/K20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc1.d/K20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc2.d/S20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc3.d/S20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc4.d/S20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc5.d/S20apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 2007-07-27 13:43 /etc/rc6.d/K20apache2 -> ../init.d/apache2
debian:~#

Както се вижда, за runlevels 0, 1 и 6 има буквата K в самото начало на линка, а за runlevels 2, 3, 4 и 5, има S. Тези две букви означават Kill и Start. За Debian и Ubuntu, runlevels 2, 3, 4 и 5 са multi-users runlevels. Runlevel 0 е за изключване, runlevel 1 е single user mode, а runlevel 6 е рестарт

1. Добавяне на service

- задаване на подразбиращи се приоритети

Командата изглежда така:

update-rc.d името_на_service defaults

Ето и пример с apache2

debian:~# update-rc.d apache2 defaults
Adding system startup for /etc/init.d/apache2 …
/etc/rc0.d/K20apache2 -> ../init.d/apache2
/etc/rc1.d/K20apache2 -> ../init.d/apache2
/etc/rc6.d/K20apache2 -> ../init.d/apache2
/etc/rc2.d/S20apache2 -> ../init.d/apache2
/etc/rc3.d/S20apache2 -> ../init.d/apache2
/etc/rc4.d/S20apache2 -> ../init.d/apache2
/etc/rc5.d/S20apache2 -> ../init.d/apache2
debian:~#

- задаване на предпочитани приоритети

Както се вижда default стойността е 20, която е доста различна от 91, т.е. S20 линка се стартира преди S91 и K91 е спрян преди K20.
За да зададем приоритет 91и на Kill и на Start, трябва да изпълним следната команда

debian:~# update-rc.d apache2 defaults 91
Adding system startup for /etc/init.d/apache2 …
/etc/rc0.d/K91apache2 -> ../init.d/apache2
/etc/rc1.d/K91apache2 -> ../init.d/apache2
/etc/rc6.d/K91apache2 -> ../init.d/apache2
/etc/rc2.d/S91apache2 -> ../init.d/apache2
/etc/rc3.d/S91apache2 -> ../init.d/apache2
/etc/rc4.d/S91apache2 -> ../init.d/apache2
/etc/rc5.d/S91apache2 -> ../init.d/apache2
debian:~#

- задаване на различни приоритети на Kill и Start

Ако искаме да зададеме Start 21 и на Kill 81, то трябва да изпълним

debian:~# update-rc.d apache2 defaults 21 81
Adding system startup for /etc/init.d/apache2 …
/etc/rc0.d/K81apache2 -> ../init.d/apache2
/etc/rc1.d/K81apache2 -> ../init.d/apache2
/etc/rc6.d/K81apache2 -> ../init.d/apache2
/etc/rc2.d/S21apache2 -> ../init.d/apache2
/etc/rc3.d/S21apache2 -> ../init.d/apache2
/etc/rc4.d/S21apache2 -> ../init.d/apache2
/etc/rc5.d/S21apache2 -> ../init.d/apache2
debian:~#

- задаване на различни стойности за K и S в различте runlevels

Ако искаме да зададем на S в runlevels 2, 3 и 4 стойност 21, а в runlevel 5, стойност 55, както и за К в runlevels 0, 1 и 6, стойност 77, трябва да изпълним

debian:~# update-rc.d apache2 start 21 2 3 4 . start 55 5 . stop 77 0 1 6 .
Adding system startup for /etc/init.d/apache2 …
/etc/rc0.d/K77apache2 -> ../init.d/apache2
/etc/rc1.d/K77apache2 -> ../init.d/apache2
/etc/rc6.d/K77apache2 -> ../init.d/apache2
/etc/rc2.d/S21apache2 -> ../init.d/apache2
/etc/rc3.d/S21apache2 -> ../init.d/apache2
/etc/rc4.d/S21apache2 -> ../init.d/apache2
/etc/rc5.d/S55apache2 -> ../init.d/apache2
debian:~#

2. Премахване на service

Премахването на service става, като изпълним

update-rc.d -f името_на_service remove

Ето и нашият пример с apache2

debian:~# update-rc.d -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 …
/etc/rc0.d/K20apache2
/etc/rc1.d/K20apache2
/etc/rc2.d/S20apache2
/etc/rc3.d/S20apache2
/etc/rc4.d/S20apache2
/etc/rc5.d/S20apache2
/etc/rc6.d

Също така могат да се използват и конзолните GUI приложения sysv-rc-conf и rcconf.

Напиши коментар