Ich bin nur neugierig. Die Manpage für Kill sagt, dass QUIT, alias Signal # 3, ein "Kern" -Signal ist. Es scheint, dass alles, was es für Java-Prozesse tut, Dump der Thread-Informationen ist. Ist das QUIT also falsch? Ist es nur so, dass die JVM einen Singal-3-Handler implementiert, der Threads ablegt?Wie funktioniert "kill -QUIT process_id"?
Antwort
QUIT ist wohl eine falsche Bezeichnung für Java. Aber durch dieses Argument kann jeder Signalname eine falsche Bezeichnung sein, wenn eine Anwendung das Standardverhalten des Signalhandlers ändern darf.
In Wirklichkeit war die Entsprechung zwischen UNIX-Signalnamen und dem, was sie tatsächlich tun, immer etwas vage und dürftig. Entwickler haben sich jedoch seit mehr als 30 Jahren mit diesem "Problem" beschäftigt, ohne dass dies ein echtes Problem darstellt.
Und ja, das Java-Thread-Stack-Dump-Verhalten wird von der JVM implementiert. Das Standardverhalten von UNIX/Linux besteht darin, einen Speicherauszug des Prozesses zu erstellen, sofern dies nicht durch andere Faktoren verhindert wird.
Ja, die JVM erfasst das # 3-Signal, um Threads zu dumpen. Standardmäßig wird für einen normalen Unix-Prozess ein Core-Speicherauszug (d. H. Eine Speicher-Momentaufnahme des Prozesses erstellt und in eine Datei geschrieben) erstellt und beendet.
Für Java ist das nicht sehr hilfreich, es wird stattdessen ein Thread-Dump ausgeführt.
- 1. Quit ein ERB lesen
- 2. jQuery $ Quit .each Schleife
- 3. quit Hauptschleife in Python
- 4. Wie funktioniert Trap/Kill in bash unter Linux?
- 5. Elektron kill child_process.exec
- 6. Wie kill Session von JavaScript
- 7. Auslösen von Kill durch Subprozess
- 8. Aufruf von quit() Methode von QApplication
- 9. Stop/kill WebRTC media stream
- 10. Kill laufende Anwendung
- 11. verhindern Kill Frame
- 12. Kill-Prozess von Dateiname
- 13. Wie kill javaw.exe in Java zur Laufzeit
- 14. Kill Prozess nach Namen?
- 15. Was ist der Unterschied zwischen "kill-0" und "kill -9"?
- 16. Emacsclient Hook on Kill
- 17. -Test getötet mit quit: lief zu lang
- 18. Kill einen Subprozess mit PyInstaller
- 19. PyQt4: Unterschied zwischen QtCore.QCoreApplication.instance(). Quit und self.close?
- 20. Kill-Prozess durch pid-Datei
- 21. Kill ein bestimmtes Formular
- 22. Unit-Tests Befehl kill
- 23. kill -9 und Produktionsanwendung
- 24. Beenden kill Befehl
- 25. wie kill SIGUSR2 in bash zu verwenden?
- 26. Python: Wie "kill" eine Klasseninstanz/Objekt?
- 27. Wie zu stoppen/Kill Rengine Thread
- 28. Quit vs Run-Anweisungen in SAS
- 29. C3js Quit Kurve auf Datenpunkt mit Nullwert
- 30. Unterschied zwischen webdriver.Dispose(), .Close() und .Quit()
Ja, QUIT ist eine falsche Bezeichnung. Wie @Will sagte, hat Sun gerade beschlossen, Signal 3 die Threads zu löschen. – Gray