Senden eines Signals über Kill und PID = 0

Senden eines Signals über Kill und PID = 0

Von Kills man:

Wenn pid 0 ist, wird sig an alle Prozesse gesendet (mit Ausnahme einer nicht angegebenen Menge von Systemprozessen), deren Prozessgruppen-ID mit der Prozessgruppen-ID des Absenders übereinstimmt und für die der Prozess die Berechtigung zum Senden eines Signals hat.

Was bedeutet das for which the process has permission to send a signalgenau? Wie kann ich überprüfen, welche Prozesse ein Signal empfangen?

Beendet beispielsweise kill -9 0alle Prozesse, die im aktuellenttyund dasttyselbst. Oder gibt es noch etwas anderes?

Antwort1

Was for which the process has permission to send a signalbedeutet das genau?

Die Antwort darauf findet sich direkt auf der Manpage:

Damit ein Prozess die Berechtigung zum Senden eines Signals hat, muss er entweder privilegiert sein oder die tatsächliche oder effektive Benutzer-ID des sendenden Prozesses muss mit der tatsächlichen oder gespeicherten Set-User-ID des Zielprozesses übereinstimmen. Im Fall vonSIGCONTes reicht aus, wenn Sende- und Empfangsprozess zur selben Sitzung gehören.

Wie kann ich überprüfen, welche Prozesse ein Signal empfangen?

Sie könnten die Prozessliste durchgehen und versuchen, jeden Prozess mit Signal 0 (dem Probelaufsignal) zu beenden. Dadurch erfahren Sie, ob Sie die Berechtigung zum Senden eines echten Signals gehabt hätten.

verwandte Informationen