Un programa es una colección estática de código de máquina ejecutable y datos (código almacenado estáticamente en un archivo) almacenado en un medio de almacenamiento externo (como disco duro, CD)
Un proceso es un programa de computadora que se ejecuta dinámicamente en la CPU y la memoria.
En el sistema Linux, se pueden crear uno o más procesos después de que se inicia cada programa
1. Ver información de proceso-ps
El comando ps es la herramienta de visualización de procesos más común en los sistemas Linux y se utiliza principalmente para mostrar instantáneas estáticas que contienen información completa sobre los procesos en ejecución.
A través de diferentes opciones de comando, puede ver de forma selectiva la información del proceso
1.1 Método 1: ps -aux
a: Muestra toda la información del proceso en el terminal actual, incluidos los procesos de otros usuarios. Cuando se combina con la opción "x", mostrará toda la información del proceso en el sistema.
u: Salida de información del proceso en un formato orientado al usuario
x: muestra la información del proceso del usuario actual en todos los terminales
La información del proceso se mostrará en forma de una lista simple
La cantidad de memoria virtual utilizada por el proceso (KB)
RSS
La cantidad de memoria física utilizada por el proceso (KB)
TYY
El nombre de la terminal que inició el proceso; si el proceso no se inicia desde la terminal, se mostrará como "?"
STAT
El estado del proceso (D: estado inactivo no interrumpible; R: estado en ejecución; S: estado inactivo y se puede despertar; s, proceso principal; T: estado detenido, que puede estar suspendido en segundo plano o el proceso está en un estado de depuración de seguimiento ; Z: proceso zombie, el proceso ha finalizado, pero la mayoría de los programas todavía están en la memoria; <: estado de alta prioridad; +: proceso en primer plano) 7
COMIENZO
El proceso se activó a la hora de inicio.
HORA
El tiempo que el proceso realmente usa la CPU para ejecutarse
MANDO
Comando de inicio de proceso
Explicación del término (proceso zombie): un proceso ha finalizado, pero aún ocupa memoria, que también se llama zombie
1.2 Método 2: ps -elf
e: muestra toda la información del proceso en el sistema
l: muestra la información del proceso en formato largo
f: use formato completo para mostrar la información del proceso
Mostrará la información del proceso en el sistema en un formato largo y contendrá contenido más rico
##例:
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 32068 ep_pol 16:47 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root 2 0 0 80 0 - 0 kthrea 16:47 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20 - 0 worker 16:47 ? 00:00:00 [kworker/0:0H]
1 S root 5 2 0 80 0 - 0 worker 16:47 ? 00:00:00 [kworker/u256:0]
##省略...
sustantivo
Explicación
F
Etiqueta del sistema asignada por el kernel al proceso
S
Estado del proceso
UID
El usuario que inició estos procesos
PID
ID de proceso del proceso
PPID
El número de proceso del proceso principal (si el proceso fue iniciado por otro proceso)
C
Utilización de CPU en el ciclo de vida de un proceso
PRI
La prioridad del proceso (cuanto mayor sea el número, menor será la prioridad)
NI
El valor de la modestia se utiliza para participar en la determinación de la prioridad.
ADDR
Dirección de memoria del proceso
SZ
Si el proceso se intercambia, el tamaño aproximado del espacio de intercambio requerido
WCHAN
Si el proceso está en suspensión, muestra el nombre de la función del sistema en suspensión
ESTIMADOS
Hora del sistema cuando comenzó el proceso
TTY
Dispositivo terminal cuando comienza el proceso
HORA
Tiempo de CPU acumulado necesario para ejecutar el proceso
CMD
Comando de inicio de proceso
En el sistema CentOs7, tty1 representa la interfaz gráfica, tty2-tty6 representa la interfaz de texto, puede usar Ctrl + Alt + (F1-F6) para cambiar
1.3 Otros ejemplos
Al ejecutar directamente el comando ps sin ninguna opción, solo se mostrarán los procesos abiertos en la sesión de usuario actual
Debido a la gran cantidad de procesos que se ejecutan en el sistema, cuando necesite consultar la información de un determinado proceso, puede combinar el símbolo de tubería y el comando grep para filtrar
2. Ver información del proceso en la parte superior
Utilice el comando ps para ver la información de un proceso estático y no puede retroalimentar continuamente el estado de ejecución del proceso actual
Si desea mostrar la información de estado de cada proceso en un modo de actualización dinámica, puede usar este comando
Actualizar cada tres segundos de forma predeterminada
2.1 Diagrama de ejemplo
[root@localhost ~]# top
2.2 Información de tareas del sistema (primera línea) y proceso (segunda línea)
Información relacionada
sentido
/
/
18:55:08
hora del sistema
Tareas
Número total de procesos
hasta 2:07
Tiempo de funcionamiento del sistema
corriendo
Número de procesos en ejecución
1 usuario
Número de usuarios actualmente conectados
dormido
Número de procesos durmientes
promedio de carga: 0.00,0.01,0.05
Carga del sistema, es decir, el número de tareas procesadas por el sistema en una unidad de tiempo. Los siguientes tres valores son el valor promedio desde 1 minuto, 5 minutos y 15 minutos hasta el presente
detenido
Número de procesos abortados
/
/
zombi
Número de procesos zombies
2.3 CPU (tercera línea), información de memoria (cuarta línea) e información de espacio de intercambio (quinta línea)
Información relacionada
sentido
/
/
/
/
nos
Ocupación del usuario
total
Espacio total de memoria
total
Espacio de intercambio total
su
Ocupación del núcleo
gratis
Memoria libre
gratis
Espacio de intercambio gratuito
ni
Ocupación de programación prioritaria
usado
Memoria usada
usado
Espacio de intercambio utilizado
carné de identidad
CPU inactiva, para comprender el porcentaje de CPU inactiva, consulte principalmente la parte% id
buff / cahe
La suma de los búferes de la memoria física y la memoria de intercambio
aprovechar Mem
Espacio físico disponible
Washington
E / S esperando a ser ocupada
/
/
/
/
Hola
Ocupación de interrupción de hardware
/
/
/
/
y
Ocupación de interrupciones de software
/
/
/
/
S t
Ocupación de virtualización
/
/
/
/
2.4 Explicación detallada de cada columna en el área de información del proceso
información
Explicación
PID
Identificacion de proceso
USUARIO
Nombre de usuario del propietario del proceso
PR
prioridad
NI
Valor de modestia, valor negativo indica alta prioridad, valor positivo indica baja prioridad
VIRT
La cantidad total de memoria virtual utilizada por el proceso, en kb
RES
El tamaño de la memoria física utilizada por el proceso, en kb
SHR
Tamaño de memoria compartida, unidad kb
S
Estado del proceso
%UPC
Porcentaje de tiempo de CPU desde la última actualización hasta el presente
% MEM
El porcentaje de memoria física utilizada por el proceso.
TIEMPO +
El tiempo total de CPU utilizado por el proceso, en unidades de 1/100 de segundo
MANDO
Nombre de comando / línea de comando
2.5 TOP comandos de uso común
mando
Explicación
PAGS
Ordenar por porcentaje de uso de CPU
METRO
Ordenar por tamaño de memoria residente
norte
Ordenar por hora de inicio
C
Alternar la visualización del nombre del comando y la línea de comando completa
h
Se puede obtener información de ayuda en línea para el programa principal
k
Ingrese el número PID del proceso especificado según se le solicite y presione Enter para terminar el proceso correspondiente
q
Salir del programa superior
(Numero 1
Muestra el número y el estado de la CPU
3. Ver información de proceso-pgrep
Cuando se usa el comando ps para consultar un determinado proceso, a menudo es necesario combinar el comando grep para filtrar los resultados de salida, pero esto es muy inconveniente de usar, y el comando "pgrep" es una herramienta especial que se usa para consultar información específica del proceso.
[root@localhost ~]# vim tmpfile ##打开vim并挂起以作测试
[1]+ 已停止 vim tmpfile
[root@localhost ~]# jobs -l ##查询目标进程PID号
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill 2028 ##尝试直接终止进程
[root@localhost ~]# jobs -l ##查询后发现并未退出
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill -9 2028 ##结合“-9”选项试试,强制终止目标进程
[root@localhost ~]# jobs -l ##没了,成功
[1]+ 2028 已杀死 vim tmpfile
3.2 killall
用于结束系统中多个相关名称的进程
也可以结合“-9”选项
例:执行“killall -9 vim”命令可将所有名为vim的进程全部强行终止
[root@localhost ~]# vim testfile1
[1]+ 已停止 vim testfile1
[root@localhost ~]# vim testfile2
[2]+ 已停止 vim testfile2
[root@localhost ~]# vim testfile3
[3]+ 已停止 vim testfile3
[root@localhost ~]# jobs -l
[1] 2130 停止 vim testfile1
[2]- 2131 停止 vim testfile2
[3]+ 2132 停止 vim testfile3
[root@localhost ~]# killall -9 vim
[1] 已杀死 vim testfile1
[2]- 已杀死 vim testfile2
[3]+ 已杀死 vim testfile3
1.2 La configuración predeterminada del sistema, ubicada en el directorio: /etc/cron.*/
Después de instalar el paquete crontabs, algunos directorios de tareas programados establecidos por el sistema por defecto se promoverán en este directorio, y se configurará qué trabajo hace el sistema cada hora y cada día.
1.3 Configuraciones definidas por el usuario, ubicadas en el archivo: / var / spool / cron /
El plan cron establecido por el usuario mediante el comando crontab se guardará en este directorio (se generará un archivo con el mismo nombre de usuario en este directorio)
2. Administra las tareas programadas de crontab
-u: Especifica a qué usuario pertenece la tarea programada. De forma predeterminada, es para el usuario actual (yo); generalmente, solo el usuario root tiene permiso para usar esta opción
Edite la tarea programada crontab -e [-u nombre de usuario] (cuando no hay -u, el objeto predeterminado es el usuario actual)
Ver la tarea programada crontab -l [-u nombre de usuario]
Eliminar la tarea programada crontab -r [-u nombre de usuario]
3. El formato de la configuración de la tarea crontab
Campo
Descripción
minuto
El valor es cualquier número entero de 0 a 59
hora
El valor es cualquier número entero de 0 a 23
fecha
El valor es cualquier número entero de 1 a 31
mes
El valor es cualquier número entero de 1 a 12
semana
El valor es cualquier número entero de 0 a 7, 0 o 7 representa el domingo
mando
Comando o script de programa para ejecutar
Recuerde la fórmula (tenga en cuenta): día, mes y semana de tiempo compartido
4. Método de representación especial del valor temporal
"*" significa cualquier momento dentro del rango
"," significa varios puntos de tiempo discretos en un intervalo
Debido a que no se requiere inicio de sesión de usuario para realizar tareas, se recomienda utilizar rutas absolutas para evitar la situación en la que los comandos no se pueden ejecutar debido a la falta de rutas de ejecución.
Al configurar la tarea para que se ejecute cada minuto, el campo "minuto" también debe completarse con un valor de tiempo específico en lugar del "*" predeterminado, de lo contrario, la tarea se ejecutará cada minuto
5. Otro
El comando crontab establece la opción "-l" puede ver la lista de tareas programadas del usuario actual. Para los usuarios raíz, también puede combinar la opción "-u" para ver las tareas programadas de otros usuarios
Cuando necesite eliminar una tarea programada, puede editarla con la opción "-e"
Otros ejemplos:
5 * * * * ls ##每个小时的第5分钟执行一次ls命令
30 5 * * * ls ##每天的5:30执行ls命令
30 7 8 * * ls ##每个月8号的7:30执行ls命令
30 5 8 6 * ls ##每个6月8号的5:30执行ls命令
30 6 * * 0 ls ##每个周日的6:30执行ls命令
30 3 10,20 * * ls ##每个月10号和20号的3:30执行ls命令
25 8-11 * * * ls ##每天8点到11点的第25分时执行ls命令
*/15 * * * * ls ##每隔15分钟执行一次ls命令
30 6 */10 * * ls ##月中的每隔10天的6:30时执行一次ls命令