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:

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

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

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

    ResponderEliminar
  4. 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

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

    ResponderEliminar
  6. Uso Gentoo con metalog en vez de syslog

    va muy bien

    ResponderEliminar
  7. 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.

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

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.