Cómo saber si está utilizando Systemd o algún otro Init en Linux

Cuando inicia un sistema Linux, comienza con un solo proceso, un programa llamado init.

Desde el lanzamiento de UNIX versión cinco (Sistema V), el sistema de inicio SysV ha sido el más popular y se introdujo en los sistemas Linux en 1991.

Siguió siendo el sistema de inicio más popular durante años, pero gradualmente, muchas distribuciones de Linux comenzaron a usar OpenRC, Runit, UpStart, etc.

En la actualidad, systemd se usa ampliamente y, por lo tanto, es probable que esté usando systemd en su sistema.

Pero como lo confirmas? Ejecutas este comando:

                      
                        ps -p 1 -o comm=
                      
                    

Si obtiene systemd en la salida, está utilizando systemd.

Un sistema Ubuntu que ejecuta systemd

Eso funciona para las distribuciones de Linux que usan systemd, pero ¿qué pasa si está usando algún otro sistema de inicio? Discutamos esa parte también.

Comprobando el sistema de inicio en Linux

Recuerde que init es el primer proceso que se inicia en su sistema Linux.

Esto significa que el detalle está en el proceso con PID 1. Verifique el proceso 1 y luego:

                      
                        ps 1
                      
                    

Pero desafortunadamente, eso no es suficiente porque el proceso a menudo se muestra como /sbin/init y eso no brinda información precisa.

                      
                        [email protected]:~$ ps 1
    PID TTY      STAT   TIME COMMAND
      1 ?        Ss     0:01 /sbin/init splash
                      
                    

El /sbin/init es un enlace simbólico al proceso de inicio real. Puede seguir el enlace simbólico y ver el proceso real.

Estoy usando el comando stat y puedes ver que /sbin/init está vinculado a /lib/systemd/systemd en Ubuntu.

                      
                        [email protected]:~$ stat /sbin/init
  File: /sbin/init -> /lib/systemd/systemd
  Size: 20        	Blocks: 0          IO Block: 4096   symbolic link
Device: 10306h/66310d	Inode: 30675721    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-09-21 09:17:59.616364311 +0530
Modify: 2022-06-27 23:58:46.000000000 +0530
Change: 2022-07-12 18:24:23.667196373 +0530
 Birth: 2022-07-12 18:24:23.667196373 +0530

                      
                    

Esta es una indicación de que systemd está en uso.

Toma otro example. Estoy usando Alpine Linux versión 3.16. Aquí está la información inicial.

                      
                        localhost:~# stat /sbin/init
  File: '/sbin/init' -> '/bin/busybox'
  Size: 12        	Blocks: 0          IO Block: 4096   symbolic link
Device: 800h/2048d	Inode: 169         Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-09-22 04:53:46.677137693 +0000
Modify: 2022-07-21 04:10:19.149395174 +0000
Change: 2022-07-21 04:10:19.149395174 +0000

                      
                    

Como puede ver, Alpine Linux utiliza el sistema de inicio ligero BusyBox.

Sistema de inicio BusyBox en Linux

También puede usar el pstree comando pero eso puede no funcionar en cualquier otra distribución para identificar el sistema init.

                      
                        pstree
                      
                    

Para Ubuntu, indica claramente si la distribución de Linux está usando systemd.

comando pstree para verificar si systemd

Como puede ver, puede que no sea sencillo, pero tampoco es tan complicado saber si su sistema Linux está usando systemd o no.


Related Posts