3. Parámetros del comando: -l señal, si el parámetro número de la señal no se agrega, use el parámetro " -l " para enumerar todos los nombres de señal -a Al procesar el proceso actual, la correspondencia entre el nombre del comando y el número del proceso no está limitada -p Especifique el comando kill para imprimir solo la ID del proceso del proceso relevante sin enviar ninguna señal -s Especifique la señal de envío -u Especifique la nota del usuario: 1. El comando kill puede estar con o sin la opción del número de señal. Si no hay un número de señal, el comando kill emitirá una señal de terminación (15), que puede ser capturada por el proceso para que el proceso pueda limpiar y liberar recursos antes de salir. También puede usar kill para enviar una señal específica al proceso. Por ejemplo: kill -2 123 El efecto es equivalente a presionar Ctrl + C mientras se ejecuta el proceso con PID 123 en primer plano. Sin embargo, los usuarios normales solo pueden usar el comando kill sin el parámetro de señal o usar la señal -9 a lo sumo. 2, kill puede tener el número de ID del proceso como parámetro. Cuando se usa kill para indicar estos procesos, deben ser los maestros de esos procesos. Si intenta deshacer un proceso que no tiene permiso para revocar o revocar un proceso que no existe, recibirá un mensaje de error. 3. Puedes señalizar o terminar múltiples procesos. 4. Cuando la eliminación envía la señal con éxito, el shell mostrará la información de terminación del proceso en la pantalla. A veces, esta información no se muestra inmediatamente, solo se mostrará cuando se presiona la tecla Intro para hacer que el indicador de comando del shell vuelva a aparecer. 5, debe prestar atención a la señal para forzar la terminación del proceso, lo que a menudo trae algunos efectos secundarios, como la pérdida de datos o el terminal no se puede restaurar al estado normal. Se debe tener cuidado al enviar una señal, y la señal de desactivación (9) se usa solo cuando es absolutamente necesario, porque el proceso no puede capturarla primero. Para deshacer todos los trabajos en segundo plano, escriba kill 0. Debido a que algunos comandos que se ejecutan en segundo plano iniciarán múltiples procesos, es complicado rastrear y encontrar el PID de todos los procesos que se eliminarán. En este punto, usar kill 0 para terminar todos los procesos iniciados por el shell actual es un método efectivo. Descripción de la señal: solo la novena señal (SIGKILL) puede terminar el proceso de manera incondicional, y otros procesos de señal tienen el derecho de ignorar. Las siguientes señales son de uso común: HUP 1 desconexión de terminal INT 2 interrupción (igual que Ctrl + C) SALIDA QUIT 3 (igual que Ctrl + \\) TERM 15 finalización KILL 9 terminación forzada CONT 18 continúa (a diferencia de STOP, comando fg /bg) STOP 19 Pausa (igual que Ctrl + Z) Procesos padre e hijo Cada proceso de Linux contiene dos ID de proceso: el ID de proceso actual (pid) y el ID de proceso principal (ppid). Puede asumir temporalmente que todos los procesos tienen un proceso padre. La mayoría de los comandos ejecutados por el usuario utilizan el shell como proceso principal. Use el comando ps -f para ver la ID del proceso actual y la ID del proceso principal. Procesos zombi y procesos huérfanos Normalmente, cuando se termina un proceso secundario, SIGCHLD señala el proceso principal, que puede realizar algunas tareas de limpieza o reiniciar un nuevo proceso. Pero en algunos casos, el proceso padre se terminará antes que el proceso hijo, entonces estos procesos hijos no tienen "padre", conocido como proceso huérfano. El proceso de inicio se convierte en el padre de todos los procesos huérfanos. El inpid pid es 1, que es el primer proceso del sistema Linux y el principal de todos los procesos. Si un proceso finaliza, pero el proceso aún se puede ver con el comando ps, y el estado es Z, entonces este es un proceso zombie. Aunque el proceso zombie finaliza, todavía existe en la lista de procesos. Por lo general, los procesos de zombis son difíciles de matar. Puedes matar primero su proceso principal, dejar que se conviertan en procesos huérfanos y el proceso de inicio automáticamente limpiará el proceso de zombies. Proceso residente El proceso residente generalmente es un proceso a nivel del sistema que se ejecuta en segundo plano con privilegios de root y puede manejar solicitudes de otros procesos. El proceso residente no tiene terminal y no puede acceder al archivo /dev /tty. Si usa ps -ef para ver el proceso, la columna tty muestra un signo de interrogación (?). Más específicamente, el proceso residente generalmente se ejecuta en segundo plano, esperando que ocurra un evento específico. Por ejemplo, el proceso de impresión es un proceso residente que espera a que el usuario ingrese los comandos relacionados con la impresión y los procese. El comando superior El comando superior es una herramienta útil para mostrar dinámicamente los procesos en ejecución y ordenar los procesos de acuerdo con los criterios especificados, similar al Administrador de tareas de Windows. El comando superior puede mostrar mucha información sobre el proceso, incluida la memoria física, la memoria virtual, el uso de la CPU, la carga promedio y los procesos ocupados. Por ejemplo: $ top Tareas y procesos Las tareas son las más abstractas y son un término general que se refiere a una actividad realizada por software. Una tarea puede ser un proceso o varios procesos. En resumen, se refiere a una serie de operaciones que trabajan juntas para lograr un determinado propósito. Por ejemplo, leer datos y ponerlos en memoria. Esta tarea puede ser implementada por un proceso o por múltiples procesos. Cada tarea tiene un número de tarea que está representado por un número. Los procesos a menudo se definen como la ejecución de un programa. Piense en un proceso como un programa independiente con su espacio de datos completo y espacio de código en la memoria. Los datos y variables que posee un proceso pertenecen a sí mismo. El comando jobs se puede usar para ver las tareas que se ejecutan en el sistema, incluidas las tareas que se ejecutan en segundo plano. Este comando muestra el número de tarea y su ID de proceso correspondiente. Una tarea puede corresponder a uno o más números de proceso. La opción -l del comando jobs puede ver los ID de proceso contenidos en la tarea actual: $ jobs -l [1] + 1903 ejecutando ls ch * .doc &$ donde la primera columna representa el número de la tarea y la segunda columna representa el proceso correspondiente a la tarea ID, la tercera columna indica el estado de ejecución de la tarea y la cuarta columna indica el comando para iniciar la tarea. Cambio entre las tareas de primer plano y de fondo El comando fg puede llevar la tarea de fondo al primer plano. La sintaxis es: $ fg% número de trabajo número de trabajo es el número de serie de la tarea de fondo obtenida a través del comando trabajos. Tenga en cuenta que no es pid. Si solo hay una tarea en segundo plano, no puede especificar el número de trabajo. El comando bg puede transferir las tareas suspendidas en segundo plano al primer plano para continuar ejecutándose. La sintaxis es: