Ich möchte eine Signalverarbeitungsfunktion für mehrere Programme schreiben, die auf verschiedenen Servern laufen, so dass, wenn sie auf Fehler stoßen, z. Segmentierungsfehler SIGSEGV oder SIGTERM usw. kann die Signalverarbeitungsfunktion ein Protokoll erzeugen und den Inhalt auf einen zentralen MYSQL-Server hochladen. Dies dient dazu, den Administrator zu informieren, den einzelnen Server zu identifizieren und das Problem zu beheben. Aus meiner Forschung sollte ich Sigaction oder Exception Handling verwenden.Wenn Programme auf Fehler stoßen, wie in Protokolle schreiben und Protokolle in MYSQL in Signalverarbeitungsfunktionen hochladen?
Q1: Für meinen Zweck, die (Signalbehandlung oder Ausnahmebehandlung) sollte ich verwenden?
Q2: Ich lese, dass es nicht empfohlen wird, nicht-reentranten Funktionen in Signal-Handler-Funktionen z. printf(). Wie könnte ich in diesem Fall eine Protokolldatei erstellen? Kann ich mich sogar mit MYSQL verbinden, um Logs in Signalverarbeitungsfunktionen hochzuladen?
Ich arbeite mit C++ und Linux. Vielen Dank fürs Lesen.
Werfen Sie einen Blick auf die Verwendung/Implementierung von 'syslogd' –