procesos

  • ¿Qué es el overcommit?

    En la salida de atop de un servidor Linux me encontré con esta situación extraña:

    Si queda memoria principal disponible y el uso de swap es cero, ¿por qué la fila SWP figura en color rojo (uso crítico)?

  • "ps aux" explicado

    Cuantas veces necesitamos obtener información sobre procesos y utilizamos la instrucción:

    ps aux

    Sin saber bien ¿qué hace?

  • Bash: cómo obtener los códigos de retorno de todos los procesos en un pipeline

    En Bash, es posible obtener el código de retorno, también llamado estado de salida (exit status), del último comando ejecutado consultando a la variable $?.

  • Cómo crear un servicio en Windows

    Este artículo explica cómo transformar un proceso en servicio en Windows Server. Supongamos que hemos desarrollado una aplicación Java que provee cierto servicio, o implementa un demonio (proceso que corre en segundo plano), y deseamos crear un servicio de Windows para gestionar la ejecución del mismo. Para ello es posible recurrir a la herramienta srvany.exe provista por el Windows Resource Kit de Windows Server 2003.

  • Cómo determinar la fecha de creación de un proceso en Linux

    A veces es necesario conocer con exactitud la fecha y hora en la que fue creado un proceso, generalmente cuando se trata de diagnosticar errores.

  • Cómo determinar qué proceso/pid está escuchando en un determinado puerto

    ¿De qué forma se puede determinar qué proceso está escuchando en un determinado puerto? Supongamos que necesitamos ejecutar un programa que abre el puerto 6789 para aceptar conexiones. Pero al momento de crear el socket el programa finaliza con error debido a que el puerto está siendo utilizado por otro proceso. Esta situación se puede presentar, por ejemplo, cuando estamos desarrollando y probando un programa que abre conexiones y nos quedan instancias abiertas ocupando puertos.

  • Cómo determinar rápidamente qué procesos están utilizando la swap

    Mientras estaba haciendo un tunning de performance de un servidor MySQL, tuve la necesidad de determinar qué procesos estaban utilizando mayor cantidad de espacio en el área de intercambio en memoria secundaria (más conocida como swap). Para ello recurrí al viejo y querido top.

  • Cómo listar todos los archivos abiertos por un ejecutable en Linux

    La herramienta strace intercepta y registra todas las llamadas al sistema operativo (kernel) realizadas y señales recibidas por un proceso en Linux. Esta herramienta de debug permite así listar todos los archivos que abre un proceso mediante el seguimiento de las invocaciones a la llamada al sistema operativo (syscall) sys_open.

  • Cómo listar todos los archivos abiertos por un proceso

    A veces necesitamos saber cuales son todos los archivos abiertos por un proceso en un sistema operativo de la familia Unix (GNU/Linux, *BSD, Solaris, etcétera). Por ejemplo, deseamos saber en qué archivo está registrando su log un demonio. Para ello es posible recurrir a la herramienta lsof.

  • Cómo listar todos los procesos de un usuario específico

    En este artículo voy a explicar la forma correcta para listar todos los procesos pertenecientes a un usuario específico, junto con algunas características interesantes de la herramienta ps.

  • Cómo matar un proceso zombie

    Respuesta corta: no es posible matar un proceso "zombie", porque ya está muerto. Pero sí es posible matar al jefe de los vampiros.

    En sistemas operativos de la familia Unix, puede ocurrir que un proceso sea marcado como "zombie" o "difunto". Esta es una situación anormal. Haciendo una analogía terrible, tener procesos "zombie" en un sistema Unix, es como tener cadáveres pudriéndose en las calles. Es decir, muertos sin sepultar. Por ello han sido llamados zombies.

    Esto ocurre cuando un proceso finaliza su ejecución (termina), pero su padre (proceso que inició al proceso zombie) no está esperando por su finalización (no recibe el código de retorno). Un proceso "zombie" no existe como tal, ya no está en memoria y no utiliza CPU. Pero el núcleo del sistema operativo aún mantiene información acerca del mismo, el estado de salida o código de retorno, y está esperando que el proceso padre la reclame.

    Entonces, un proceso "zombie" es una simple entrada en la tabla de procesos del núcleo del sistema operativo. Lo cual implica que no es posible matar un proceso "zombie", porque ya está muerto. Por más que se le envíen señales como kill -"hachazo en la cabeza", no va a desaparecer (digamos que no ocurre como en las series de zombies).

  • Cómo obtener el uptime de MySQL

    ¿Querés saber hace cuántos días se encuentra corriendo de forma ininterrumpida un servidor de bases de datos MySQL? En este artículo presento tres formas diferentes de obtener el esta información.

  • Cómo saber qué proceso está usando un archivo o socket

    Anteriormente expliqué cómo determinar qué proceso tiene un puerto abierto utilizando netstat. En esta oportunidad voy a demostrar el uso de la herramienta fuser para identificar el proceso que está utilizando cierto archivo o socket.

  • Cómo ver las líneas completas en la salida de ps

    Poder ver el comando completo con el que se lanzó un proceso, el eterno drama al ejecutar ps aux.

    root@debian:~# ps 2778
      PID TTY      STAT   TIME COMMAND
     2778 ?        Sl    78:51 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s
    

    Existen varias formas de lograr el cometido y en este artículo explico algunas de las que conozco.

  • Determinar rápidamente cual es el PID de un programa

    Este artículo demuestra cómo determinar el PID de un programa en un sistema GNU/Linux.

  • Disponible sere v0.1.2

    He liberado la tercera versión estable de sere, mi herramienta para monitorear servidores Web en tiempo real desde cualquier navegador Web. Esta versión trae algunas novedades:

    • Posee gráficas mejoradas.
    • Muestra un extracto de los diez procesos que más CPU consumen.
    • Funciona correctamente en la mayoría de los navegadores, incluyendo Internet Explorer 11.
    • Muestra el uptime, fecha y usuarios cantidad de usuarios.
    • Muestra la carga promedio en los últimos 1, 5 y 15 minutos.
  • Ejecutar un comando con timeout

    La herramienta timeout permite correr un comando con un límite de tiempo. Si el comando sigue corriendo una vez transcurrido el período de tiempo especificado como parámetro, timeout mata el proceso o le envía otra señal especificada a través de la opción -s. Este artículo demuestra algunos ejemplos de uso.

  • Gestión de procesos en GNU/Linux

    Esta semana tuve la oportunidad de mostrar en el laboratorio de Sistemas Operativos y Distribuidos las diferentes técnicas y herramientas para gestionar procesos en GNU/Linux: listar procesos en ejecución, obtener información de procesos, iniciar y detener procesos, determinar y alterar la prioridad de ejecución de procesos y gestionar procesos en segundo plano.

  • Listar procesos, librerías en uso y servicios en Windows

    Necesitamos obtener un listado de procesos en un sistema Windows y al intentar ejecutar ps aux obtenemos:

    A diferencia de los sistemas de la familia Unix, Windows no posee el comando ps, aunque incluye un comando tasklist relativamente decente para lograr el objetivo de listar procesos.

  • Listar todos los archivos abiertos por un proceso en FreeBSD

    En los sistemas operativos FreeBSD/OpenBSD, la herramienta fstat permite listar los archivos abiertos por un proceso pasando un PID como parámetro.