Para los que venimos de un moundo RedHat, service y chkconfig son
realmente una cosa muy bonita.
He visto que almenos Ubuntu, ya se instala el paquete sysv-rc y dice de
él:
# dpkg -l sysv-rc | tail -1
ii sysv-rc 2.86.ds1-6ubuntu32 Standard boot mechanism using
symlinks in /etc/rc?.d
Mirando el paquetillo, un equivalente al service(RH) es invoke-rc.d
Esto pasa en mi Ubuntu al usarlo:
root@agua:~# /usr/sbin/invoke-rc.d mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for crashed MySQL tables in the background.
Ahora uno similar al chkconfig(RH) es update-rc.d, claro que no es tan
bonita su sintaxis comparado al chkconfig. Pero veamos que hace:
1. Curiosidad: ¿ Cuándo se levanta MySQL en mi sistema ?
root@agua:~# find /etc/rc[0-9].d -name "*mysql"
/etc/rc0.d/K20mysql
/etc/rc1.d/K20mysql
/etc/rc2.d/S20mysql
/etc/rc3.d/S20mysql
/etc/rc4.d/S20mysql
/etc/rc5.d/S20mysql
/etc/rc6.d/K20mysql
Respuesta: En los niveles 2,3,4 y 5 (S=start, K=kill)
2. Quitar MySQL para que no levante durante el inicio
root@agua:~# /usr/sbin/update-rc.d -f mysql remove
Removing any system startup links for /etc/init.d/mysql ...
/etc/rc0.d/K20mysql
/etc/rc1.d/K20mysql
/etc/rc2.d/S20mysql
/etc/rc3.d/S20mysql
/etc/rc4.d/S20mysql
/etc/rc5.d/S20mysql
/etc/rc6.d/K20mysql
3. Repetir 1. para ver que hizo :-)
root@agua:~# find /etc/rc[0-9].d -name "*mysql"
root@agua:~#
Respuesta: No hay nada, MySQL ya no se levanta mas durante el inicio
4. Quiero que levante en nivel 2 y 3
root@agua:~# /usr/sbin/update-rc.d mysql start 20 2 3 . stop 20 0 1 4 5
6 .
Adding system startup for /etc/init.d/mysql ...
/etc/rc0.d/K20mysql -> ../init.d/mysql
/etc/rc1.d/K20mysql -> ../init.d/mysql
/etc/rc4.d/K20mysql -> ../init.d/mysql
/etc/rc5.d/K20mysql -> ../init.d/mysql
/etc/rc6.d/K20mysql -> ../init.d/mysql
/etc/rc2.d/S20mysql -> ../init.d/mysql
/etc/rc3.d/S20mysql -> ../init.d/mysql
Que horrible sintaxis . En RH es más bonito, sería así:
chkconfig --level 23 mysql on
update-rc.d tiene daño cerebral comparado a chkconfig. update-rc.d
necesita indicarle los niveles para subir y para bajar. Además que
necesita saber en que orden lo va subir
start 20 2 3 = Dice subir (S=start) en el puesto 20, en niveles 2 y 3
stop 20 0 1 4 5 6 = Dice bajar (K=kill) en el puesto 20, en niveles
1,4,5,6
5. Horrible sintaxis la anterior, mejor borrar todo y usar los niveles y
orden predeterminados
root@agua:~# /usr/sbin/update-rc.d -f mysql remove
(salida omitida)
root@agua:~# /usr/sbin/update-rc.d mysql defaults
Adding system startup for /etc/init.d/mysql ...
/etc/rc0.d/K20mysql -> ../init.d/mysql
/etc/rc1.d/K20mysql -> ../init.d/mysql
/etc/rc6.d/K20mysql -> ../init.d/mysql
/etc/rc2.d/S20mysql -> ../init.d/mysql
/etc/rc3.d/S20mysql -> ../init.d/mysql
/etc/rc4.d/S20mysql -> ../init.d/mysql
/etc/rc5.d/S20mysql -> ../init.d/mysql
Evidentemente no tan avanzado como chkconfig pero al final también útil.
En resumen, Debian/Ubuntu ya tiene script para manejar la subida/bajada
de servicios durante el arranque. Estos vienen en el paquete sysv-rc y
son los predeterminados que usan los paquetes como apache, mysql, php,
etc, etc, al momento de instalarse en el sistema.
Blog basado en el foro de www.softwarelibre.org.bo y autorizado por sus moderadores. Está destinado a quienes tienen conocimientos sobre Linux y desean despejar dudas. Este blog está compuesto por una compilación de las mejores consultas con sus respectivas respuestas. Nuestra única fuente es el foro anteriormente mencionado y no nos hacemos responsables por las preguntas y respuestas compiladas ni por los enlaces que puedan figurar en las mismas.