Управление на services с update-rc.d в Debian/Ubuntu
17 октомври, 2008 – 6:47 amИзточник: Myfreesoft
Изключително лесен и невероятно полезен инструмент. Той се грижи за автоматичното прибавяне и премахване на необходимите линкове от /etc/init.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
- задаване на подразбиращи се приоритети
Командата изглежда така:
Ето и пример с apache2
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, трябва да изпълним следната команда
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, то трябва да изпълним
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, трябва да изпълним
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 става, като изпълним
Ето и нашият пример с apache2
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.