linux:administracionprocesos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| linux:administracionprocesos [2018/12/21 12:03] – [ps] alberto | linux:administracionprocesos [2018/12/23 17:36] (actual) – ↷ Página movida de linux:gestionsistema:administracionprocesos a linux:administracionprocesos alberto | ||
|---|---|---|---|
| Línea 15: | Línea 15: | ||
| ==== ps ==== | ==== ps ==== | ||
| Permite ver la lista de procesos del sistema. Extrae toda la información del pseudosistema de archivos **/proc** en el que el núcleo de Linux coloca toda la información respecto al estado del sistema en curso de ejecución.\\ | Permite ver la lista de procesos del sistema. Extrae toda la información del pseudosistema de archivos **/proc** en el que el núcleo de Linux coloca toda la información respecto al estado del sistema en curso de ejecución.\\ | ||
| - | Tiene muchas opciones, que conviene consultarlas con la opción --help((La versión en español del manual puede estar obsoleta en algunos casos. Pueden verse las páginas del manual en el lenguaje internacional ANSI C (aunque se haya instalado la distribución en español) modificando la variable de entorno $LANG, | + | Tiene muchas opciones, que conviene consultarlas con la opción --help((La versión en español del manual puede estar obsoleta en algunos casos. Pueden verse las páginas del manual en el lenguaje internacional ANSI C (aunque se haya instalado la distribución en español) modificando la variable de entorno $LANG, |
| + | |||
| + | Opciones comunes: | ||
| + | * **ps aux**: Muestra los procesos de todos los usuarios(**a**), | ||
| + | * **ps -ef**: Muestra todos los procesos(**-e**) y mucha información (**-f**). | ||
| + | * **%CPU** Porcentaje de tiempo que se ha usado el procesador desde la ejecución del comando. | ||
| + | * **%MEM** Porcentaje de uso de la memoria disponible. | ||
| + | * **COMMAND** o **CMD** Nombre del comando que originó el proceso. | ||
| + | * **GID** o **GROUP** Identificación del grupo bajo el que se ejecuta el proceso. | ||
| + | * **NI** Nivel de prioridad del proceso. | ||
| + | * **PID** Identificación del proceso. | ||
| + | * **PPID** Identificación del proceso padre. | ||
| + | * **RSS** Cantidad de memoria RAM utilizada en KB. | ||
| + | * **START** o **STIME** Fecha de lanzamiento del proceso. | ||
| + | * **STAT** Estado del proceso. Definido por tres caracteres: | ||
| + | * El primer carácter puede tomar alguno de estos valores: | ||
| + | * **R** Proceso ejecutándose (// | ||
| + | * **T** Proceso parado (// | ||
| + | * **S** Proceso dormido (// | ||
| + | * **D** Proceso dormido en espera de un recurso (// | ||
| + | * **Z** Proceso terminado. Se quedará en este estado hasta que el proceso padre se de cuenta y recupere su código de retorno (// | ||
| + | * **TIME** Tiempo total de uso de la CPU para este proceso. | ||
| + | * **TT** o **TTY** Terminal al que está vinculado el proceso. Si no está asociado a ninguno (como un demonio) aparece el carácter **?**. | ||
| + | * **UID** o **USER**: Identificación del usuario bajo el que se ejecuta el proceso. | ||
| ==== top ==== | ==== top ==== | ||
| + | Permite visualizar la actividad del procesador en tiempo real.\\ | ||
| + | Tiene las mismas etiquetas que la instrucción **ps**, siendo posible modificar las columnas de información presentes y la ordenación de los procesos.\\ | ||
| + | Con la tecla **[?]** visualizamos la ayuda del comando, y con la tecla **[q]** salimos de top. Para modificar los campos usamos la tecla **[f]**. También se puede enviar señales a los procesos con la tecla **[k]**.\\ | ||
| + | |||
| + | Podemos usar el archivo de configuración **/ | ||
| + | |||
| + | ==== pstree ==== | ||
| + | Muestra los nombres de los procesos de forma jerárquica, | ||
| + | Con la opción **-p** se muestra el PID de cada uno de ellos.\\ | ||
| + | Este comando muestra una línea cuando existen varias instancias del mismo proceso, y el número que aparece delante de ***** indica el número de instancias correspondientes. | ||
| ==== Monitor del sistema ==== | ==== Monitor del sistema ==== | ||
| Línea 26: | Línea 59: | ||
| * **Sistemas de archivos**: Información acerca del % de uso del espacio de las particiones en uso por el sistema. | * **Sistemas de archivos**: Información acerca del % de uso del espacio de las particiones en uso por el sistema. | ||
| - | ===== Señales ===== | + | ===== Señales: kill y killall |
| + | Los comandos **kill** y **killall** permiten enviar señales a los procesos. \\ | ||
| + | El comando **kill** espera un número de proceso como argumento, mientras que **killall** espera un comando. **killall** debe usarse con precaución, | ||
| + | |||
| + | En ambos procesos es posible especificar la señal a enviar, aunque de forma predeterminada envían la señal 15 (SIGTERM, termina el proceso). Para obtener la lista completa de señales, se ejecuta **kill -l**. Para obtener información acerca de las señales, puede consultarse el manual, de la forma **man 7 signal**, así como leer el archivo **/ | ||
| ===== Trabajo con procesos ===== | ===== Trabajo con procesos ===== | ||
| + | ==== Iniciar un proceso. ==== | ||
| + | Para iniciar un proceso, basta con introducir en el terminal el comando correspondiente. Esto hará que el proceso se ejecute en primer plano.\\ | ||
| + | Si deseamos que el proceso se ejecute en segundo plano, y de esa forma no dejar sin uso el terminal, mientras éste se ejecuta, basta con introducir el carácter **&** al final de la línea del comando. Aparecerá entonces el PID de este proceso de forma informativa.\\ | ||
| + | |||
| + | ==== Detener un proceso ==== | ||
| + | En caso de que el proceso se ejecute en primer plano, hay tres maneras de pararlo: | ||
| + | * **ctrl + c**: Se envía la señal 2 (SIGINT, finalización del proceso por interrupción desde el teclado) al proceso. | ||
| + | * **ctrl + \**: Se envía la señal 3 (SIGQUIT, finalización del proceso, previo guardado del espacio de memoria en un archivo llamado //core// (útil para la depuración de aplicaciones). | ||
| + | * Identificar el PID del proceso en otro terminal, y usar el comando **kill** de forma adecuada. | ||
| + | |||
| + | En el caso de que el proceso se esté ejecutando en segundo plano, sólo puede detenerse identificando su PID y deteniéndolo a través del comando **kill**. | ||
| + | |||
| + | ==== Control de procesos ==== | ||
| + | Al ser posible ejecutar varios procesos desde el mismo terminal al mismo tiempo (ya que algunos pueden estar ejecutándose en segundo plano), son necesarios algunos comandos para controlarlos. | ||
| + | |||
| + | === jobs: lista de procesos === | ||
| + | El comando **jobs** lista la lista de procesos que han sido iniciados desde el terminal actual. | ||
| + | === bg y fg: toma de control de proceso === | ||
| + | Si un proceso largo se ha iniciado en primer plano por error, no es necesario interrumpirlo para iniciarlo en segundo plano.\\ | ||
| + | Hay que seguir estos pasos: | ||
| + | - **ctrl + z**: El proceso se suspende y el usuario puede tomar de nuevo el control del terminal. | ||
| + | - Se puede volver a ejecutar el proceso en primer plano con el comando **fg**, o en segundo plano con el comando **bg**. | ||
| + | - Para ello hay que introducir como argumento el número de //job// del proceso (entre corchetes, cuando se ejecutra el comando **jobs**) precedido por **%** (sin espacios). | ||
linux/administracionprocesos.1545390217.txt.gz · Última modificación: por alberto
