SIGUSR2
ist architekturabhängig und kann einen Wert außerhalb von 31
haben , 12
oder 17
. Dies ist in man 7 signal
beschrieben . Sie müssen herausfinden, welcher Wert für Ihr System geeignet ist. Normalerweise geschieht dies durch einen Blick in:
/usr/include/asm/signal.h
Auf meinem System – Ubuntu 12.04 AMD 64 – hat es einen Wert von 12
:
#define SIGUSR2 12
Sobald Sie den richtigen numerischen Wert für SIGUSR2
kennen Auf Ihrem System können Sie dieses Signal senden mit:
kill -SIGNO PID
# In this case
kill -12 PID
Auf meiner Linux-Box funktioniert es.
Ich habe eine Endlosschleife ausgeführt (PID =4574), dann bin ich gelaufen
#!/bin/bash
kill -l | grep USR2
kill -SIGUSR2 4574
töte -l hat das Signal gezeigt und töte -SIGUSR2 hat das Signal gesendet (Prozess beenden).
Überprüfen Sie, ob Sie Bash oder eine andere Shell ausführen (z. B. dash, busybox usw.)
Plattformübergreifender Weg, dies zu tun:Verwenden Sie -s
ohne SIG
Präfix. Beispiel:
kill -s USR2 $pid
Dies scheint sowohl auf MacOS als auch auf Linux zu funktionieren.