{"id":246313,"date":"2022-10-19T21:04:54","date_gmt":"2022-10-19T21:04:54","guid":{"rendered":"https:\/\/magazineoffice.com\/como-enumerar-los-servicios-de-linux-con-systemctl\/"},"modified":"2022-10-19T21:04:56","modified_gmt":"2022-10-19T21:04:56","slug":"como-enumerar-los-servicios-de-linux-con-systemctl","status":"publish","type":"post","link":"https:\/\/magazineoffice.com\/como-enumerar-los-servicios-de-linux-con-systemctl\/","title":{"rendered":"C\u00f3mo enumerar los servicios de Linux con systemctl"},"content":{"rendered":"


\n<\/p>\n

\n<\/p>\n
fatmawati achmad zaenuri\/Shutterstock.com<\/span><\/figcaption><\/figure>\n

Para ver todos los servicios en ejecuci\u00f3n en un sistema Linux con systemd, use el comando \u00absystemctl –type=service –state=running\u00bb. Esto le mostrar\u00e1 el nombre, la carga, el subestado y la descripci\u00f3n de cada servicio activo. Tambi\u00e9n puede cambiar el valor del estado para ver los servicios que est\u00e1n inactivos, cerrados, fallidos o inactivos.<\/p>\n

Su computadora con Linux depende de muchas tareas en segundo plano llamadas servicios o demonios. En las distribuciones basadas en systemd, tiene comandos integrados que le permiten ver qu\u00e9 servicios se est\u00e1n ejecutando, est\u00e1n deshabilitados o fallan.<\/p>\n

Servicios y Demonios<\/h2>\n

Los servicios y demonios son tareas en segundo plano que se ejecutan sin una interfaz de usuario, no requieren interacci\u00f3n humana y, por lo general, se inician cuando se inicia la computadora.<\/p>\n

En un momento, los servicios fueron lanzados por init<\/code>, que fue el primer proceso que se puso en marcha. Los detalles de los servicios se guardaron en una colecci\u00f3n de scripts ubicados en el directorio \u00ab\/etc\/init\/d\u00bb. En distribuciones que no son systemd, ese sigue siendo el caso.<\/p>\n

En el mundo systemd, los servicios son lanzados por systemd<\/code> que es ahora el primer proceso que se lanzar\u00e1. Los detalles de los servicios se almacenan en archivos de unidad<\/em> ubicado en el directorio \u201c\/usr\/lib\/systemd\u201d.<\/p>\n

De acuerdo con su p\u00e1gina man, systemd<\/code> es un administrador de sistemas y servicios. Puedes usar el systemctl<\/code> comando para inspeccionar y controlar diferentes aspectos del sistema systemd, incluidos servicios y demonios.<\/p>\n

Debido a que estamos viendo comandos espec\u00edficos de systemd aqu\u00ed, lo primero que debe saber es si est\u00e1 ejecutando una distribuci\u00f3n basada en systemd o no.<\/p>\n

RELACIONADO:<\/strong> Por qu\u00e9 systemd de Linux sigue siendo divisivo despu\u00e9s de todos estos a\u00f1os<\/em><\/strong><\/p>\n

\u00bfBasado en init o systemd?<\/h2>\n

La gran mayor\u00eda de las distribuciones de Linux usan systemd, incluidas Arch, Red Hat y Debian, y muchas de las distribuciones derivadas de ellas. Eso incluye la familia de distribuciones Ubuntu, Fedora y sus giros, y Manjaro y las otras distribuciones basadas en Arch.<\/p>\n

Sin embargo, existen bifurcaciones o sabores de algunas de estas distribuciones que se han creado espec\u00edficamente para evitar tener que usar systemd. No solo eso, sino que hay otros sistemas de inicio que alguien podr\u00eda elegir usar en lugar del que viene por defecto en su distribuci\u00f3n, como runit o s6-linux-init.<\/p>\n

Si tiene que administrar una computadora con Linux que no configur\u00f3 usted mismo, la \u00fanica forma de estar seguro de si est\u00e1 usando systemd o no es verificar. Podemos hacerlo observando el \u00e1rbol de procesos con el pstree<\/code> dominio. Solo necesitamos ver la parte superior del \u00e1rbol, despu\u00e9s de todo, estamos buscando el primer proceso que se ejecuta, por lo que canalizaremos la salida a trav\u00e9s del head<\/code> y pregunte por las primeras cinco entradas.<\/p>\n

pstree | head -5<\/pre>\n

\"Usar<\/p>\n

Podemos ver eso systemd<\/code> es el primer proceso que se ejecuta despu\u00e9s del arranque, por lo que definitivamente estamos en una instalaci\u00f3n de Linux basada en systemd.<\/p>\n

RELACIONADO:<\/strong> C\u00f3mo administrar procesos desde la terminal de Linux: 10 comandos que necesita saber<\/em><\/strong><\/p>\n

Uso de systemctl para enumerar servicios<\/h2>\n

El comando para listar servicios y demonios es systemctl<\/code>. Podemos refinar la systemctl<\/code> comando con el type<\/code> y state<\/code> opciones estamos preguntando systemctl<\/code> para informar sobre los servicios que se encuentran en estado de ejecuci\u00f3n.<\/p>\n

systemctl --type=service --state=running<\/pre>\n

\"Usando<\/p>\n

Se genera una tabla de informaci\u00f3n. Si es demasiado ancho o largo para la ventana de su terminal, se muestra en su visor de archivos predeterminado, que probablemente ser\u00e1 less<\/code>.<\/p>\n

\"El<\/p>\n

Para ver el extremo derecho de la tabla, presione la tecla de flecha derecha. Para volver a la vista habitual, presione la tecla de flecha izquierda.<\/p>\n

\"La<\/p>\n

Presione la tecla Q para salir de menos. Las columnas que se muestran son:<\/p>\n

    \n
  • Unidad<\/strong>: El nombre del servicio o daemon. La columna se titula \u00abUnidad\u00bb porque lo que sea que est\u00e9 en esta columna se lanz\u00f3 usando informaci\u00f3n systemd<\/code> encontrado en un archivo de unidad.<\/li>\n
  • Carga<\/strong>: El estado de carga del servicio o daemon. Puede estar cargado, no encontrado, mal configurado, error o enmascarado.<\/li>\n
  • Activo<\/strong>: El estado general en el que se encuentra el servicio o demonio. Puede estar activo, recarg\u00e1ndose, inactivo, fallido, activ\u00e1ndose o desactiv\u00e1ndose.<\/li>\n
  • SUB<\/strong>: El subestado del servicio o daemon. Puede estar muerto, cerrado, fallido, inactivo o en ejecuci\u00f3n.<\/li>\n
  • Descripci\u00f3n<\/strong>: Una breve descripci\u00f3n de la unidad.<\/li>\n<\/ul>\n

    Podemos canalizar la salida de systemctl<\/code> mediante grep<\/code> si queremos centrarnos en un solo servicio. Este comando a\u00edsla la entrada de la tabla para el ssh<\/code> Servicio.<\/p>\n

    systemctl --type=service --state=running | grep ssh<\/pre>\n

    \"Uso<\/p>\n

    Hasta ahora, hemos estado filtrando el contenido de la tabla proporcionando el state=running<\/code> opci\u00f3n. En su lugar, podemos usar cualquiera de los valores posibles del subestado: muerto, salido, fallido, inactivo o en ejecuci\u00f3n.<\/p>\n

    Busquemos servicios fallidos:<\/p>\n

    systemctl --type=service --state=failed<\/pre>\n

    \"Informes<\/p>\n

    Se pueden utilizar combinaciones de subestados. Escr\u00edbalos como una lista separada por comas. Aseg\u00farese de no incluir ning\u00fan espacio en blanco entre las opciones. Tenga en cuenta que esto encuentra servicios que coinciden o<\/em> estado.<\/p>\n

    systemctl --type=service --state=failed,exited<\/pre>\n

    \"Buscando<\/p>\n

    Al presionar la tecla de flecha derecha para ver las columnas fuera de la pantalla, se muestra que tenemos una combinaci\u00f3n de servicios que han salido y fallado en la lista.<\/p>\n

    \"Una<\/p>\n

    Por defecto, systemctl<\/code> enumera los procesos (servicios y demonios) que han sido lanzados por systemd<\/code> porque systemd<\/code> encontr\u00f3 un archivo de unidad que conten\u00eda un archivo de unidad v\u00e1lido para ellos. Es por eso que el t\u00e9rmino abreviado para todos estos procesos es \u00abunidades\u00bb.<\/p>\n

    Hay una opci\u00f3n para solicitar expl\u00edcitamente systemctl<\/code> para enumerar unidades, pero como es la acci\u00f3n predeterminada, no se usa con frecuencia.<\/p>\n

    Estos comandos producen los mismos resultados.<\/p>\n

    sudo systemctl list-units --type=service --state=running<\/pre>\n
    sudo systemctl --type=service --state=running<\/pre>\n

    Usando systemctl para listar archivos de unidad<\/h2>\n

    Podemos ampliar el alcance de la systemctl<\/code> comando incluyendo el list-unit-files<\/code> opci\u00f3n. Esto no solo informa sobre los servicios y demonios que se han lanzado, sino que tambi\u00e9n enumera todos los archivos de unidad<\/em> instalado en su computadora.<\/p>\n

    systemctl list-unit-files --state=enabled<\/pre>\n

    \"Listado<\/p>\n

    Se muestra una tabla de colores.<\/p>\n

    \"Una<\/p>\n

    La eliminaci\u00f3n de la state<\/code> La opci\u00f3n elimina el filtrado. La salida contendr\u00e1 todos los archivos de unidad instalados, independientemente de su estado.<\/p>\n

    systemctl list-unit-files<\/pre>\n

    \"Uso<\/p>\n

    La salida contendr\u00e1 muchas m\u00e1s entradas que los resultados de los comandos anteriores.<\/p>\n

    \"Todos<\/p>\n

    En nuestra computadora de prueba, la lista de resultados es casi cuatro veces m\u00e1s larga que la salida de nuestros comandos anteriores.<\/p>\n

    Si desea utilizar el state<\/code> opci\u00f3n, puede usar m\u00faltiples estados con \u00e9l como vimos anteriormente. Se aplican las mismas reglas. Proporcione las opciones como valores separados por comas y no incluya ning\u00fan espacio en blanco.<\/p>\n

    Este comando mostrar\u00e1 una lista de todos los archivos de la unidad que est\u00e1n deshabilitados o no se pudieron iniciar.<\/p>\n

    systemctl list-unit-files --state=enabled,failed<\/pre>\n

    \"Uso<\/p>\n

    Se muestra un n\u00famero reducido de resultados, filtrados seg\u00fan las selecciones realizadas con la opci\u00f3n de estado.<\/p>\n

    \"Una<\/p>\n

    Mirando un servicio en detalle<\/h2>\n

    Si algo sobre un servicio o demonio despierta su inter\u00e9s y merece una inmersi\u00f3n m\u00e1s profunda, puede verlo en detalle usando la opci\u00f3n de estado systemctl.<\/p>\n

    Echemos un vistazo al demonio SSH, sshd. Todo lo que tenemos que hacer es usar la opci\u00f3n de estado y el nombre del servicio o daemon.<\/p>\n

    systemctl status sshd<\/pre>\n

    \"Los<\/p>\n

    Esta pantalla compacta muestra:<\/p>\n

      \n
    • El nombre del servicio junto con una breve descripci\u00f3n. Un punto codificado por colores muestra si se est\u00e1 ejecutando o no. Verde significa que se est\u00e1 ejecutando, rojo significa que no.<\/li>\n
    • Lo que se carg\u00f3, incluida la ruta al archivo de la unidad.<\/li>\n
    • Cu\u00e1nto tiempo ha estado funcionando.<\/li>\n
    • Donde la documentaci\u00f3n se encuentra en el man<\/code> manual.<\/li>\n
    • El ID de proceso de la instancia en ejecuci\u00f3n.<\/li>\n
    • Cu\u00e1ntas instancias simult\u00e1neas de este servicio se est\u00e1n ejecutando. Por lo general, este ser\u00e1 uno.<\/li>\n
    • Cu\u00e1nta memoria se est\u00e1 consumiendo.<\/li>\n
    • Cu\u00e1nto tiempo de CPU se ha consumido.<\/li>\n
    • El grupo de control al que pertenece el servicio.<\/li>\n<\/ul>\n

      Tambi\u00e9n se muestran las entradas relevantes del registro del sistema. Suelen ser eventos como el inicio del servicio. Estos pueden ser informativos si est\u00e1 investigando un servicio o demonio que no se inici\u00f3 correctamente.<\/p>\n

      RELACIONADO:<\/strong> C\u00f3mo usar journalctl para leer registros del sistema Linux<\/em><\/strong><\/p>\n

      Los Sistemas Auton\u00f3micos<\/h2>\n

      Los servicios y demonios proporcionan muchas de las acciones autom\u00e1ticas de su sistema operativo, por lo que son vitales. Eso significa que su salud tambi\u00e9n es vital.<\/p>\n

      Obtener una vista de sus servicios, demonios y archivos de unidad es f\u00e1cil e informativo. Tambi\u00e9n es un paso valioso para solucionar problemas si un servicio o demonio se niega a iniciarse.<\/p>\n

      RELACIONADO:<\/strong> C\u00f3mo resolver el error \u00abDemasiados archivos abiertos\u00bb en Linux<\/em><\/strong><\/p>\n<\/div>\n