LPIC

Guía extraoficial de estudio

Archivos en la Categoría: 6: Modificar las prioridades de ejecución de los procesos

Destruir procesos

El comando kill

Cuando queramos finalizar un proceso en ejecución, el comando a utilizar es kill. Este programa lo que hace es enviar una señal al proceso. Podemos ver las señales poniendo el flag –l al comando.

kill -l

kill -l

Podemos especificar la señal empleando el número o el nombre de la misma. Las señales más utilizadas son la 1 (finaliza los programas interactivos y hace que muchos demonios vuelvan a leer sus ficheros de configuración), la 9 (hace que el proceso termine “a la fuerza”) y 15 (hace que el proceso termine pero permite cerrar ficheros abiertos, etc).Esta última es la señal por defecto si no especificamos señal.

El programa kill solo destruirá los procesos del usuario que los ejecuta, a excepción de root.

Una variante de este comando es killall. Permite destruir procesos en base a su nombre, en lugar del PID. Por ejemplo, killall vi, destruirá todos los procesos llamados vi.

Al igual que con kill, con –s, podemos especificar la señal que queremos usar. Una opción importante para killall es –i, que permite destruir procesos de forma interactiva:

[super@localhost ~]$ killall -15 -i vim
Kill vim(2531) ? (y/N)

Tanto kill como en killall admiten dos sintaxis para destruir un proceso:

kill –s señal PID
kill –numero_señal PID
killall –s señal nombre_proceso
killall –numero_señal nombre_proceso

además killall admite:

killall – –signal señal nombre_proceso

Administrar las prioridades de los procesos

Priorizar un proceso

Es posible administrar la prioridad con la que se ejecutan los procesos de nuestro sistema, con el objetivo de priorizar el uso de la cpu a ciertos programas. Los comandos para realizar estas acciones son nice y renice. Utilizamos nice para ejecutar un programa indicando la prioridad que queremos que tenga y renice para modificarla de un programa ya en ejecución.

Podemos usar nice de tres maneras distintas:

  • Indicando la prioridad después de un guión (solo para prioridades positivas).
  • Indicando la prioridad después del flag -n.
  • Indicando la prioridad después del parámetro –adjustement=.
nice -12 vi hola.txt
nice -n 12 vi hola.txt
nice –adjustement=12 vi hola.txt

Si omitimos el valor de regulación, nice utilizará por defecto la 10. Cuando ejecutamos un programa sin nice, su prioridad es de 0. El rango de valores es de -20 a 19, siendo los valores negativos los que tienen una prioridad mas alta. Solamente con el usuario root podemos iniciar un programa que una prioridad negativa.

El comando renice tiene la siguiente sintaxis:

renice prioridad [[-p] pids] [[-g] pgrps] [[-u] usuarios]

Donde pids son los id de los procesos, pgrps los ids de los grupos y usuarios el nombre o nombres de los usuarios. Cuando queramos restablecer la prioridad para un determinado grupo o usuarios, debemos tener en cuenta que solo root puede realizar esta acción.

Un ejemplo:

renice 3 -p 12122 31313 -u antonio maria

Establecemos la prioridad 3 para los procesos 12122 y 31313 para los usuarios antonio y maria.