Wie finde ich heraus, welcher Prozess ein HUP-Signal an meinen Node.js-Prozess gesendet hat?

Wie finde ich heraus, welcher Prozess ein HUP-Signal an meinen Node.js-Prozess gesendet hat?

Jeden Montag um 9 Uhr UTC sendet etwas ein HUPSignal an meinen node.js-Prozess (und ich glaube, HUP wird an alle Prozesse gesendet, nicht nur an meinen). Wie finde ich heraus, welcher Prozess das HUPSignal an mein Programm gesendet hat? Mein Programm hat einen HUP-Handler, der einen Neustart (zum Neuladen der Konfiguration) bewirkt, sodass mein Produktionsstapel jeden Montag um 9 Uhr von selbst neu gestartet wird (aber weiterläuft, also ist alles gut, es ist nur super nervig).

Ich habe das Gefühl, dass es systemd ist, das macht, ich weiß nur nicht, welcher Teil von systemd das macht. Irgendwelche Ideen?

Es ist eine Debian 11.7-Installation.

Antwort1

Dies können Sie tun miteBPF:

sudo dnf install bcc-tools
sudo /usr/share/bcc/tools/killsnoop

So sieht es aus, wenn SIGHUP(-1) vom Prozess mit PID1221229 gesendet wird. Dies ist die bashShell, in der ich den kill -1 1221227Prozess mit PID1221227 ausführe.

[mvutcovi@laptop-rh-old ~]$ sudo /usr/share/bcc/tools/killsnoop
TIME      PID    COMM             SIG  TPID   RESULT
01:38:35  1221229 bash             1    1221227 0
^C[mvutcovi@laptop-rh-old ~]$

Ein anderer Weg, diesmal mitftrace:

sudo dnf install trace-cmd
sudo trace-cmd record -e signal
sudo trace-cmd report

Hier sende ich SIGHUP sleepvon einer bashShell an einen Prozess:

[mvutcovi@laptop-rh-old ~]$ sudo trace-cmd record -e signal
[mvutcovi@laptop-rh-old ~]$ sudo trace-cmd report
version = 7
cpus=8
           sleep-1221703 [001] 1248579.487042: signal_deliver:       sig=9 errno=0 code=0 sa_handler=0 sa_flags=0
           sleep-1221703 [001] 1248579.487362: signal_generate:      sig=17 errno=0 code=2 comm=bash pid=1221675 grp=1 res=0
[mvutcovi@laptop-rh-old ~]$ sudo rm trace.dat

verwandte Informationen