
Ich verwende folgende Falle:
trap OnExit EXIT
Und in meiner OnExit
Funktion möchte ich alle Informationen darüber erfassen, was passiert ist, damit ich sie in eine Protokolldatei schreiben kann. Ich möchte wissen, wer, warum, wie, wann usw.
Ist irgendetwas davon möglich?
Antwort1
1. Wer– da ein anderer Benutzer keine Signale an Ihre Prozesse senden kann, handelt es sich höchstwahrscheinlich um den Benutzer, dem der Prozess gehört (der Root-Benutzer kann dies zwar immer noch, aber ich kenne keine Möglichkeit herauszufinden, ob Root Ihren Prozess beendet).
2. Warum- vielleicht so etwas:
echo "Why did you interrupted the process?" && read why && echo $why > log
(Ich bin nicht sicher, was Sie mit „Warum“ meinen).
3. Wie- da BASH das gleiche Signal empfängt, wenn der Benutzer drückt Ctrl + C
oder einen Interrupt über sendet kill
, ist es meines Wissens nach unmöglich herauszufinden, wie genau der Interrupt aufgetreten ist.
4. wann- das ist einfach, verwenden Sie den date
Befehl:
date > log
BEARBEITEN:wenn Sie unter "warum" und "wie" die Bestimmung des Signaltyps verstanden haben, dann sieheDasFragen und Antworten auf StackOverflow.