07 noviembre 2007

Reto: runlevel

Actualización: Todas las soluciones propuestas son válidas, de una forma u otra podemos encontrar el runlevel en ejecución sin usar el comando runlevel. Sin embargo yo iba por otro sitio. La ejecución del runlevel adecuado es el primer proceso que se ejecuta en el sistema, por lo que podemos encontrar toda su información en:

/proc/1/

En una Fedora, por ejemplo, el contenido de /proc/1/cmdline es init [3]. Aquí es donde se puede ver este valor. El problema es que no todas las distribuciones ofrecen esa información en este directorio (por lo que pido perdón a quien haya dado mil vueltas sobre esta carpeta y no haya encontrado nada).


Los linuxeros sabrán que runlevel indica el nivel de arranque utilizado para cargar el sistema, pero ¿en qué otro lugar del sistema podríamos descubrir este valor? Es decir, ¿cómo podemos saber el runlevel en ejecución sin utilizar el comando runlevel?. Tiene mucho sentido...

9 comentarios:

sag dijo...

cat /var/log/everything/current | grep runlevel

Joaquín dijo...

sag, eso no funciona. ¿Qué distribución usas?

Unknown dijo...

En Debian/Ubuntu al menos existe el comando runlevel, que te muetra el nivel actual.

Unknown dijo...

Perdón, no sé leer XDDDDD

Unknown dijo...

Mmmm... en el man de runlevel dice que lo que hace es leer el fichero /var/run/utmp.

Así que haciendo un cat a ese fichero (ojo, que es binario) podemos verlo: 2~~~runlevel

Joaquín dijo...

draxus, es una posible idea, se puede leer con dificultades, pero yo estaba pensando en otra cosa...

sag dijo...

Uso Gentoo con metalog en vez de syslog

va muy bien

sag dijo...

Se me ha pasado decir que en Gentoo en de cara al usuario no se usan runlevel con números. Se usa lo siguiente.

l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot

Las herramienstas para gestionarlos son rc-status, rc-update, rc-config. ...

Cualquiera de esas herramientas me diría el runlevel, pero por ejemplo ahora me diría que es 'default'.
Peros si busco el el log me sale el número correspondiente, que es lo que he puesto.

Joaquín dijo...

Ah, de acuerdo sag, no conozco Gentoo, pero prometo hacerlo en breve :-)