[Umfassende Erklärung der Linux-Befehle] 158.Linux-Befehlsfähigkeiten: Verwenden Sie Fähigkeiten und Snice, um Prozesse einzufrieren und die Prozesspriorität zu reduzieren

Fähigkeit

Senden Sie ein Signal an den ausgewählten Prozess, um den Prozess einzufrieren

Weitere Informationen

skillDer Befehl wird verwendet, um ein Signal an den ausgewählten Prozess zu senden und den Prozess einzufrieren. Dieser Befehl wird normalerweise nicht von Anfängern verwendet, kann aber bei der Optimierung von Systemdiensten verwendet werden.

Grammatik

skill(选项)

Optionen

  • -f:Schneller Modus;
  • -i: Interaktiver Modus, jeder Vorgang erfordert eine Bestätigung;
  • -v: Redundanter Modus;
  • -w:Aktivierungsmodus;
  • -V: Versionsnummer anzeigen;
  • -t: Geben Sie die Terminalnummer an, um den Vorgang zu starten.
  • -u: Geben Sie den Benutzer an, der den Prozess startet;
  • -p: Geben Sie die ID-Nummer des Prozesses an;
  • -c: Geben Sie den Namen des Befehls zum Starten des Prozesses an.

Beispiel

Was sollten Sie tun, wenn Sie einen Prozess finden, der viel CPU und Speicher beansprucht, Sie ihn aber nicht stoppen möchten? Betrachten Sie die folgende Top-Befehlsausgabe:

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...

Nachdem Sie nun bestätigt haben, dass der Prozess 16514 viel Speicher beansprucht, können Sie skillihn mit dem Befehl „einfrieren“, anstatt ihn zu stoppen.

skill -STOP 1

Überprüfen Sie anschließend die oberste Ausgabe:

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...

Jetzt geht die CPU von 0 % Leerlauf auf 94 % Leerlauf. Der Prozess wird effektiv eingefroren. Nach einiger Zeit möchten Sie den Prozess möglicherweise wieder aktivieren:

skill -CONT 16514

Diese Methode ist nützlich, wenn Sie einen Prozess vorübergehend einfrieren möchten, um Platz für den Abschluss wichtigerer Prozesse zu schaffen.

Dieser Befehl ist sehr vielseitig. Wenn Sie alle Prozesse für den Benutzer „oracle“ stoppen möchten, benötigen Sie dazu nur einen Befehl:

skill -STOP oracle

Als Parameter können Sie Benutzer-, PID-, Befehls- oder Terminal-ID verwenden. Der folgende Befehl stoppt alle rman-Befehle.

skill -STOP rman

Wie Sie sehen, skillentscheiden Sie, welche Parameter Sie eingeben (Prozess-ID, Benutzer-ID oder Befehl) und handeln Sie entsprechend. Dies kann in einigen Fällen zu Problemen führen: Möglicherweise haben ein Benutzer und ein Befehl denselben Namen. Das beste Beispiel ist der Prozess „oracle“, der normalerweise vom Benutzer „oracle“ ausgeführt wird. Wenn Sie also einen Prozess namens „oracle“ stoppen möchten, führen Sie den folgenden Befehl aus:

skill -STOP oracle

Alle Prozesse für den Benutzer „oracle“ werden gestoppt, einschließlich der Sitzungen, die Sie möglicherweise verwenden. Um die Ausführung eines Befehls sehr genau zu bestimmen, können Sie optional den Typ des Arguments mithilfe eines neuen Arguments angeben. Um einen Befehl namens Oracle zu stoppen, führen Sie den folgenden Befehl aus:

skill -STOP -c oracle

sniceDie Funktionalität des Befehls skillähnelt der von . Aber es wird verwendet, um die Priorität eines Prozesses zu senken, nicht um ihn zu stoppen. Überprüfen Sie zunächst die obere Ausgabe:

  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

Senken Sie nun die Priorität des „Orakel“-Prozesses um vier Punkte. Beachten Sie, dass die Priorität umso niedriger ist, je höher der Wert ist.

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

Beachten Sie, dass die NI-Spalte (schöner Wert) jetzt 4 ist und die Priorität jetzt auf 20 statt auf 15 eingestellt ist. Dies ist sehr hilfreich, um Prioritäten zu senken.

Lernen Sie von Grund aufpython

[Python von Grund auf lernen] 92. Verwenden Sie die Anforderungsbibliothek von Python, um HTTP-Anfragen zu senden und Antworten zu verarbeiten.
[Python von Grund auf lernen] 91. Verwenden Sie Dekoratoren und Wörterbücher, um Anforderungspfade in einer einfachen Webanwendung zu verwalten.
[Python von Grund auf lernen] 93. Verwenden Sie ein Wörterbuch Management-Anforderungspfad
[Python von Grund auf lernen] 89. Verwenden Sie WSGI, um einen einfachen und effizienten Webserver zu erstellen
[Python von Grund auf lernen] 88. Detaillierte Erläuterung der WSGI-Schnittstelle: Einfache und effiziente Webentwicklung realisieren
[Python von Grund auf lernen] 87. Manuell Erstellen Sie einen HTTP-Server in Python. Implementierung und gleichzeitige Multithread-Verarbeitung.
[Python von Grund auf lernen.] 86. Vertiefendes Verständnis des HTTP-Protokolls und seiner Rolle bei der Browser- und Serverkommunikation.
[Python von Grund auf lernen.] 85. Anwendung der Parallel-Computing-Technologie im Python-Prozesspool
[Python von Grund auf lernen] 84. Vertieftes Verständnis von Threads und Prozessen
[Python von Grund auf lernen] 83. Python-Multiprozessprogrammierung und Verwendung von Prozesspools
[Python von Grund auf lernen] 82. Chat-Programm Implementierung basierend auf Multithreading
[Python von Grund auf lernen] 81. Python mehr Anwendung von Thread-Kommunikation und Warteschlange
[Python von Grund auf lernen] 80. Thread-Zugriff auf globale Variablen und Thread-Sicherheitsprobleme
[Python von Grund auf lernen] 79. Thread-Zugriff auf globale Variablen und Thread-Sicherheitsprobleme
[Python von Grund auf lernen] 78. Datei-Download-Fall
[Python von Grund auf lernen] 77. Programmierung und Vorsichtsmaßnahmen für TCP-Server
[Python von Grund auf lernen] 76. Server und Client: Schlüsselkomponenten der Netzwerkkommunikation
[Python lernen von Grund auf neu] 75. TCP-Protokoll: zuverlässiges verbindungsorientiertes Übertragungsschicht-Kommunikationsprotokoll
[Python von Grund auf lernen] 74. UDP-Netzwerkprogramm: Detaillierte Erläuterung von Portproblemen und Bindungsinformationen
[Python von Grund auf lernen] 73. UDP-Netzwerkprogramm - Daten senden
[Python von Grund auf lernen] 72. Vertiefendes Verständnis der Socket-Kommunikation und Methode zur Erstellung von Sockets
[Python von Grund auf lernen] 71. Netzwerkports und ihre Funktionen
[Python von Grund auf lernen] 70. Netzwerkkommunikationsmethoden und ihre Anwendungen: von der direkten Kommunikation bis zu Routern, um mehrere Netzwerke zu verbinden
[Python von Grund auf lernen] 69. Netzwerk Kommunikations- und IP-Adressklassifizierungsanalyse
[Python von Grund auf lernen] 68. Gierige und nicht gierige Modi in regulären Python-Ausdrücken
[Python von Grund auf lernen] 67. Das Re-Modul in Python: regelmäßige Ersetzung und erweiterte Matching-Technologie
[Python von Grund auf lernen] 66. Umfassendes Verständnis regulärer Ausdrücke: ein leistungsstarkes Werkzeug für Mustervergleich und Textverarbeitung
[Python von Grund auf lernen] 65. Detaillierte Erklärung der Python-Modifikatoren für reguläre Ausdrücke und ihrer Anwendungen
[Python von Grund auf lernen] 64. Die re.compile-Methode in regulären Ausdrücken in Python Detaillierte Erläuterung der Verwendung
[Python von Grund auf lernen] 63. Einführung in die re.Match-Klasse und ihre Attribute und Methoden in regulären Ausdrücken
[Python von Grund auf lernen] 62. Reguläre Python-Ausdrücke: ein leistungsstarkes Tool zum String-Matching
[Lernen Python von Grund auf] 61. Detaillierte Erklärung und Anwendungsbeispiele von Eigenschaftsattributen in Python
[Python von Grund auf lernen] 60. Explorationsgenerator: ein flexibles Tool für die Iteration
[Python von Grund auf lernen] 59. Iterator: Ein effizientes Tool zur Optimierung der Datendurchquerung
[ Python von Grund auf lernen] 58. Benutzerdefinierte Ausnahmen in Python und Methoden zum Auslösen von Ausnahmen
[Python von Grund auf lernen] 57. Verwenden Sie das Schlüsselwort with in Python, um Ressourcen korrekt zu schließen
[Python von Grund auf lernen] 56. Die Bedeutung und Anwendung der Ausnahmebehandlung in der Programmierung
[Python von Grund auf lernen] 55. Serialisierung und Summe in Python Deserialisierung, Anwendung von JSON- und Pickle-Modulen
[Python von Grund auf lernen] 54. Daten in den Speicher schreiben
[Python von Grund auf lernen] 53. CSV-Dateien und Pythons CSV-Modul
[Python von Grund auf lernen] 52. Dateien lesen und schreiben – Anleitung zur Python-Dateibedienung
[ Python von Grund auf lernen] 51. Dateien und ihre Anwendungen in Python öffnen und schließen
[Python von Grund auf lernen] 49. Objektbezogene integrierte Funktionen in Python und ihre Verwendung
[Python von Grund auf lernen] 48 .Detaillierte Erklärung von Vererbung und Mehrfachvererbung Vererbung in Python
[Python von Grund auf lernen] 47. Das Konzept und die grundlegende Verwendung der Vererbung in der objektorientierten Programmierung
[Python von Grund auf lernen] 46. Analyse von __new__- und __init__-Methoden und Singletons in Python-Entwurfsmustern
[Python von Grund auf lernen] 45 . Klassenmethoden und statische Methoden in Python
[Python von Grund auf lernen] 44. Private Eigenschaften und Methoden in der objektorientierten Programmierung
[Python von Grund auf lernen] 43. Beispiele in der objektorientierten Programmierung in Python Eigenschaften und Klassenattribute
[Python von Grund auf lernen] 42. Integrierte Eigenschaften und Methoden in Python
[Python von Grund auf lernen] 41. Python-Magie-Methode (2)
[Python von Grund auf lernen] 40. Python-Magie-Methode (1)
[Python von Grund auf lernen] 39. Grundlegende objektorientierte Syntax und Anwendungsbeispiele
[Python von Grund auf lernen] 38. Verwendung und Import von Python-Paketen
[Python von Grund auf lernen] 37. Verwendung und Vorsichtsmaßnahmen von benutzerdefinierten Python-Modulen
[Python lernen von Grund auf] Python lernen] 36. Methoden und Techniken zur Verwendung von pip für die Paketverwaltung von Drittanbietern in Python
[Python von Grund auf lernen] 35. Allgemeine Python-Systemmodule und ihre Verwendung
[Python von Grund auf lernen] 34. Detaillierte Erläuterung des Imports und Verwendung von Python-Modulen
[Python von Grund auf lernen] 33. Die Rolle von Dekoratoren (2)
[Python von Grund auf lernen] 32. Die Rolle von Dekoratoren (1)
[Python von Grund auf lernen] 31. Vertiefendes Verständnis von höher- Bestellfunktionen und Abschlüsse in Python
[Von „Lernen Sie Python von Grund auf““ 30. Vertiefendes Verständnis rekursiver Funktionen und anonymer Funktionen
„Lernen Sie Python von Grund auf“ 29. „Detaillierte Erklärung von Funktionsparametern“ – Verstehen Sie die verschiedenen Verwendungen von Python-Funktionsparametern
【 Python von Grund auf lernen】28. Lokale Variablen und globale Variablen in Python-Variablen
[Python von Grund auf lernen] 27. Die Verwendung von Python-Funktionen und verschachtelten Aufrufen
[Python von Grund auf lernen] 25. Funktionen: ein Tool zur Verbesserung der Effizienz beim Schreiben von Code
[Python von Grund auf lernen] 24. String-Operationen und Traversal-Methoden in Python
[Python von Grund auf lernen] 23. Verwendung von Mengen (Set) und allgemeinen Operationen in Python
[Python von Grund auf lernen] 22. Hinzufügen, Löschen, Ändern und Wörterbuchvariablen in Python abfragen
[Python von Grund auf lernen] 21. Python-Tupel und Wörterbücher
[Python von Grund auf lernen] 20. Fähigkeiten und Beispiele für Python-Listenoperationen
[Python von Grund auf lernen] 19. Anwendungen des Durchlaufens von Listen und der Listenverschachtelung
[Python von Grund auf lernen] 18. Detaillierte Erläuterung der Grundoperationen von Python-Listen (1)
[Von Python von Grund auf lernen] 17. Die Formatierungsmethode von Python-Strings (2)
【Python von Grund auf lernen】 16. Die Formatierungsmethode von Python-Strings (1)
【Python von Grund auf lernen】 15. Vertiefendes Verständnis von Strings und Zeichensatzkodierung
【Von Python von Grund auf lernen】14. Allgemeine Operationen an Python-Strings (2)
【Python von Grund auf lernen】13. Allgemeine Operationen an Python-Strings (1)
【Python von Grund auf lernen】12. Python-String-Operationen und -Anwendungen
【 Python von Grund auf lernen】 11. Python-Schleifenanweisungen und Kontrollfluss
[Python von Grund auf lernen] 10. Detaillierte Erklärung von Python-Bedingungsanweisungen und deren Verschachtelung
[Python von Grund auf lernen] 09. Bedingte Beurteilungsanweisungen in Python
[Python von Grund auf lernen] 08 . Python versteht Bitoperationsoperatoren und Operatorprioritäten
[Python von Grund auf lernen] 07. Detaillierte Erklärung von Python-Operatoren: Zuweisung, Vergleich und logische Operatoren
[Python von Grund auf lernen] 06. Arithmetische Operatoren in Python für Berechnungen und String-Verkettung verwenden
[Lernen von Scratch] Python] 05. Ausgabe und Eingabe in Python
[Python von Grund auf lernen] 04. Grundlagen der Python-Programmierung: Variablen, Datentypen und Bezeichner
[Python von Grund auf lernen] 03. Interaktive Python-Programmierung und detaillierte Erklärung von Kommentaren
[Python von Grund auf lernen] 02. Einführung in Entwicklungstools
[Python von Grund auf lernen] 01. Python installieren und konfigurieren

Ich denke du magst

Origin blog.csdn.net/qq_33681891/article/details/132968656
Empfohlen
Rangfolge