[Explicación completa de los comandos de Linux] 158.Habilidades de comando de Linux: use habilidad y cortesía para congelar procesos y reducir la prioridad del proceso

habilidad

Enviar una señal al proceso seleccionado para congelar el proceso.

Información adicional

skillEl comando se utiliza para enviar una señal al proceso seleccionado y congelar el proceso. Los principiantes no suelen utilizar este comando, pero puede utilizarse cuando se trata de optimización de servicios del sistema.

gramática

skill(选项)

Opciones

  • -f:Modo rápido;
  • -i: Modo interactivo, cada operación requiere confirmación;
  • -v: modo redundante;
  • -w:Modo de activación;
  • -V: Muestra el número de versión;
  • -t: Especifique el número de terminal para iniciar el proceso;
  • -u: Especifique el usuario que inicia el proceso;
  • -p: Especifique el número de identificación del proceso;
  • -c: Especifique el nombre del comando para iniciar el proceso.

Ejemplo

¿Qué debe hacer si encuentra un proceso que consume mucha CPU y memoria, pero no desea detenerlo? Considere el siguiente resultado del comando superior:

top -c -p 16514
23:00:44  up 12 days,  2:04,  4 users,  load average: 0.47, 0.35, 0.31
1 processes: 1 sleeping, 0 running, 0 zombie, 0 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total    0.0%    0.6%    8.7%   2.2%     0.0%   88.3%    0.0%
Mem:  1026912k av, 1010476k used,   16436k free,       0k shrd,   52128k buff
                    766724k actv,  143128k in_d,   14264k in_c
Swap: 2041192k av,   83160k used, 1958032k free                  799432k cached

  PID USER     PRI  NI  SIZE  RSS SHARE stat %CPU %MEM   time CPU command
16514 oracle    19   4 28796  26M 20252 D N   7.0  2.5   0:03   0 oraclePRODB2...

Ahora que confirmó que el proceso 16514 está consumiendo mucha memoria, puede usar skillel comando para "congelarlo" en lugar de detenerlo.

skill -STOP 1

Después de eso, verifique el resultado superior:

23:01:11  up 12 days,  2:05,  4 users,  load average: 1.20, 0.54, 0.38
1 processes: 0 sleeping, 0 running, 0 zombie, 1 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total    2.3%    0.0%    0.3%   0.0%     0.0%    2.3%   94.8%
Mem:  1026912k av, 1008756k used,   18156k free,       0k shrd,    3976k buff
                    770024k actv,  143496k in_d,   12876k in_c
Swap: 2041192k av,   83152k used, 1958040k free                  851200k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
16514 oracle    19   4 28796  26M 20252 T N   0.0  2.5   0:04   0 oraclePRODB2...

Ahora, la CPU pasa del 0% inactiva al 94% inactiva. El proceso está efectivamente congelado. Después de un tiempo, es posible que desees reactivar el proceso:

skill -CONT 16514

Este método es útil si desea congelar temporalmente un proceso para dejar espacio para que se completen procesos más importantes.

Este comando es muy versátil. Si desea detener todos los procesos para el usuario "oracle", solo necesita un comando para lograrlo:

skill -STOP oracle

Puede utilizar usuario, PID, comando o identificación de terminal como parámetros. El siguiente comando detiene todos los comandos rman.

skill -STOP rman

Como puede ver, skilldecida qué parámetros ingresa (ID de proceso, ID de usuario o comando) y actúe en consecuencia. Esto puede causar problemas en algunos casos: es posible que tenga un usuario y un comando con el mismo nombre. El mejor ejemplo es el proceso "oracle", normalmente ejecutado por el usuario "oracle". Entonces, cuando desee detener un proceso llamado "oracle", ejecute el siguiente comando:

skill -STOP oracle

Se detienen todos los procesos del usuario "oracle", incluidas las sesiones que pueda estar utilizando. Para ser muy específico acerca de la ejecución de un comando, opcionalmente puede especificar el tipo de argumento usando un nuevo argumento. Para detener un comando llamado Oracle, ejecute el siguiente comando:

skill -STOP -c oracle

sniceLa funcionalidad del comando es skillsimilar a . Pero se utiliza para reducir la prioridad de un proceso, no para detenerlo. Primero, verifique el resultado superior:

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
    3 root      15   0     0    0     0 RW    0.0  0.0   0:00   0 kapmd
13680 oracle    15   0 11336  10M  8820 T     0.0  1.0   0:00   0 oracle
13683 oracle    15   0  9972 9608  7788 T     0.0  0.9   0:00   0 oracle
13686 oracle    15   0  9860 9496  7676 T     0.0  0.9   0:00   0 oracle
13689 oracle    15   0 10004 9640  7820 T     0.0  0.9   0:00   0 oracle
13695 oracle    15   0  9984 9620  7800 T     0.0  0.9   0:00   0 oracle
13698 oracle    15   0 10064 9700  7884 T     0.0  0.9   0:00   0 oracle
13701 oracle    15   0 22204  21M 16940 T     0.0  2.1   0:00   0 oracle

Ahora, reduzca la prioridad del proceso del "oráculo" en cuatro puntos. Tenga en cuenta que cuanto mayor sea el valor, menor será la prioridad.

snice +4 -u oracle
  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
16894 oracle    20   4 38904  32M 26248 D N   5.5  3.2   0:01   0 oracle

Tenga en cuenta que la columna NI (buen valor) ahora es 4 y la prioridad ahora está establecida en 20 en lugar de 15. Esto es muy útil para reducir las prioridades.

Aprende desde ceropython

[Aprenda Python desde cero] 92. Utilice la biblioteca de solicitudes de Python para enviar solicitudes HTTP y procesar respuestas
[Aprenda Python desde cero] 91. Utilice decoradores y diccionarios para gestionar rutas de solicitud en una aplicación web sencilla
[Aprenda Python desde cero] 93. Utilice el diccionario gestión Ruta de solicitud
[Aprenda Python desde cero] 89. Utilice WSGI para crear un servidor web simple y eficiente
[Aprenda Python desde cero] 88. Explicación detallada de la interfaz WSGI: realice un desarrollo web simple y eficiente
[Aprenda Python desde cero] 87. Manualmente construir un servidor HTTP en Python Implementación y procesamiento concurrente de subprocesos múltiples
[Aprender Python desde cero] 86. Comprensión profunda del protocolo HTTP y su papel en la comunicación entre el navegador y el servidor
[Aprender Python desde cero] 85. Aplicación de tecnología de computación paralela en Grupo de procesos de Python
[Aprende Python desde cero] ] 84. Comprensión profunda de subprocesos y procesos
[Aprende Python desde cero] 83. Programación multiproceso de Python y uso de grupos de procesos
[Aprende Python desde cero] 82. Implementación del programa de chat basado en subprocesos múltiples
[Aprende Python desde cero] 81. Python más Aplicación de comunicación y cola de subprocesos
[Aprende Python desde cero] 80. Acceso de subprocesos a variables globales y problemas de seguridad de subprocesos
[Aprende Python desde cero] 79. Acceso de subprocesos a global variables y problemas de seguridad de subprocesos
[Aprende Python desde cero] 78. Caso de descarga de archivos
[Aprende Python desde cero] 77. Programación y precauciones del servidor TCP
[Aprende Python desde cero] 76. Servidor y cliente: componentes clave de la comunicación de red
[Aprende Python desde cero] scratch] 75. Protocolo TCP: protocolo de comunicación de capa de transmisión confiable orientado a la conexión
[Aprenda Python desde cero] 74. Programa de red UDP: explicación detallada de los problemas de puerto e información vinculante
[Aprenda Python desde cero] 73. Programa de red UDP: envío de datos
[Aprenda Python desde cero] 72. Comprensión profunda de la comunicación de Socket y Método de creación de sockets
[Aprende Python desde cero] 71. Puertos de red y sus funciones
[Aprende Python desde cero] 70. Métodos de comunicación de red y sus aplicaciones: desde la comunicación directa a enrutadores para conectar múltiples redes
[Aprende Python desde cero] 69. Red análisis de comunicación y clasificación de direcciones IP
[Aprenda Python desde cero] 68. Modos codiciosos y no codiciosos en expresiones regulares de Python
[Aprenda Python desde cero] 67. El módulo re en Python: reemplazo regular y tecnología de coincidencia avanzada
[Aprenda Python desde cero] 66. Comprensión profunda de las expresiones regulares: una herramienta poderosa para la coincidencia de patrones y el procesamiento de texto
[Aprende Python desde cero] 65. Explicación detallada de los modificadores de expresiones regulares de Python y sus aplicaciones
[Aprende Python desde cero] 64. El método re.compile en expresiones regulares de Python Explicación detallada del uso
[Aprenda Python desde cero] 63. Introducción a la clase re.Match y sus atributos y métodos en expresiones regulares
[Aprenda Python desde cero] 62. Expresiones regulares de Python: una poderosa herramienta de coincidencia de cadenas
[Aprenda python desde cero] 61. Explicación detallada y ejemplos de aplicación de atributos de propiedad en Python
[Aprende python desde cero] 60. Generador de exploración: una herramienta flexible para la iteración
[Aprende python desde cero] 59. Iterador: una herramienta eficiente para optimizar el recorrido de datos
[ Aprenda Python desde cero] 58. Excepciones personalizadas en Python y métodos para generar excepciones
[Aprender Python desde cero] 57. Utilice la palabra clave with en Python para cerrar recursos correctamente
[Aprender Python desde cero] 56. La importancia y aplicación del manejo de excepciones en la programación
[Aprender Python desde cero] 55. Serialización y suma en Python Deserialización, aplicación de módulos JSON y pickle
[Aprender Python desde cero] 54. Escribir datos en la memoria
[Aprender Python desde cero] 53. Archivos CSV y módulo CSV de Python
[Aprender Python desde cero] 52. Lectura y escritura de archivos: guía de operación de archivos Python
[ Aprenda Python desde cero] 51. Abrir y cerrar archivos y sus aplicaciones en Python
[Aprender Python desde cero] 49. Funciones integradas relacionadas con objetos en Python y su uso
[Aprende Python desde cero] 48. Explicación detallada de herencia y múltiples herencia en Python
[Aprende python desde cero] 47. El concepto y uso básico de la herencia en programación orientada a objetos
[Aprende python desde cero] 46. Análisis de métodos __new__ e __init__ y singletons en patrones de diseño de Python
[Aprende python desde cero] 45 Métodos de clase y métodos estáticos en Python
[Aprende python desde cero] 44. Propiedades y métodos privados en programación orientada a objetos
[Aprende python desde cero] 43. Ejemplos en programación orientada a objetos de Python Propiedades y atributos de clase
[Aprende python desde cero] 42. Propiedades y métodos integrados en Python
[Aprende Python desde cero] 41. Método mágico de Python (2)
[Aprende Python desde cero] 40. Método mágico de Python (1)
[Aprende Python desde cero] 39. Sintaxis básica orientada a objetos y ejemplos de aplicaciones
[Aprende Python desde cero] 38. Cómo usar e importar paquetes de Python
[Aprende Python desde cero] 37. El uso y las precauciones de los módulos personalizados de Python
[Aprende Python desde cero] Aprenda Python] 36. Métodos y técnicas de uso de pip para la administración de paquetes de terceros en Python
[Aprenda Python desde cero] 35. Módulos comunes del sistema Python y su uso
[Aprenda Python desde cero] 34. Explicación detallada de la importación y uso de módulos de Python
[Aprender Python desde cero] 33. El papel de los decoradores (2)
[Aprender Python desde cero] 32. El papel de los decoradores (1)
[Aprender Python desde cero] 31. Comprensión profunda de los niveles superiores ordenar funciones y cierres en Python
[De Aprenda Python desde cero] 30. Comprensión profunda de funciones recursivas y funciones anónimas
【Aprenda Python desde cero】 29. "Explicación detallada de los parámetros de funciones": comprenda los diferentes usos de los parámetros de funciones de Python
【 aprenda Python desde cero] 28. Variables locales y variables globales en Python Variables
[Aprenda Python desde cero] 27. El uso de funciones de Python y llamadas anidadas
[Aprenda Python desde cero] 25. Funciones: una herramienta para mejorar la eficiencia de la escritura de código
[Aprende Python desde cero] 24. Operaciones de cadena y métodos transversales en Python
[Aprende Python desde cero] 23. Cómo usar conjuntos (set) y operaciones comunes en Python
[Aprende Python desde cero] 22. Agregar, eliminar, modificar y consultar variables de diccionario en Python
[Aprende Python desde cero] 21. Tuplas y diccionarios de Python
[Aprende Python desde cero] 20. Habilidades y ejemplos de operación de listas de Python
[Aprende Python desde cero] 19. Aplicaciones de bucles de listas y anidamiento de listas
[Aprende Python desde cero] 18. Explicación detallada de las operaciones básicas de las listas de Python (1)
[De Aprender Python desde cero] 17. El método de formato de cadenas de Python (2)
【Aprender Python desde cero】 16. El método de formato de cadenas de Python (1)
【Aprender Python desde cero】 15. Comprensión profunda de cadenas y codificación del conjunto de caracteres
【De Aprender Python desde cero】 14. Operaciones comunes en cadenas de Python (2)
【Aprender Python desde cero】 13. Operaciones comunes en cadenas de Python (1)
【Aprender Python desde cero】 12. Operaciones y aplicaciones de cadenas de Python
【 Aprendiendo Python desde cero】 11. Declaraciones de bucle de Python y flujo de control
[Aprende Python desde cero] 10. Explicación detallada de las declaraciones condicionales de Python y si anida
[Aprende Python desde cero] 09. Declaraciones de juicio condicional en Python
[Aprende Python desde cero] 08 Python entiende el operador de operaciones de bits, la prioridad del operador
[Aprenda Python desde cero] 07. Explicación detallada de los operadores de Python: asignación, comparación y operadores lógicos
[Aprenda Python desde cero] 06. Utilice operadores aritméticos en Python para cálculos y concatenación de cadenas
[Aprenda de scratch] python ] 05. Salida y entrada en Python
[Aprende python desde cero] 04. Conceptos básicos de la programación en Python: variables, tipos de datos e identificadores
[Aprende python desde cero] 03. Programación interactiva en Python y explicación detallada de los comentarios
[Aprender Python desde cero] 02. Introducción a las herramientas de desarrollo
[Aprender Python desde cero] 01. Instalar y configurar Python

Supongo que te gusta

Origin blog.csdn.net/qq_33681891/article/details/132968656
Recomendado
Clasificación