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.