Wie erhalte ich das Kill-Signal/die Kill-Nachricht/den Kill-Grund innerhalb eines Skripts?

Wie erhalte ich das Kill-Signal/die Kill-Nachricht/den Kill-Grund innerhalb eines Skripts?

Ich verwende folgende Falle:

trap OnExit EXIT

Und in meiner OnExitFunktion 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 + Coder 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 dateBefehl:

date > log

BEARBEITEN:wenn Sie unter "warum" und "wie" die Bestimmung des Signaltyps verstanden haben, dann sieheDasFragen und Antworten auf StackOverflow.

verwandte Informationen