Todos los lunes a las 9 a. m. UTC, algo envía una HUP
señal a mi proceso node.js (y creo que HUP se envía a todos los procesos, no solo al mío). ¿Cómo encuentro qué proceso envió la HUP
señal a mi programa? Mi programa tiene un controlador HUP que lo reinicia (para recargar la configuración), por lo que todos los lunes a las 9 a. m., mi pila de producción se reinicia por sí sola (pero sigue ejecutándose, por lo que todo está bien, es súper molesto).
Tengo la sensación de que lo está haciendo systemd, pero no sé qué parte de systemd lo está haciendo. ¿Algunas ideas?
Es una instalación de Debian 11.7.
Respuesta1
Puedes hacer esto coneBPF:
sudo dnf install bcc-tools
sudo /usr/share/bcc/tools/killsnoop
Así es como se ve al enviar SIGHUP
(-1) desde el proceso con PID
1221229, que es el bash
shell donde ejecuto el kill -1 1221227
proceso con PID
1221227.
[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 ~]$
De otra manera, esta vez conftrace:
sudo dnf install trace-cmd
sudo trace-cmd record -e signal
sudo trace-cmd report
Aquí estoy enviando SIGHUP a un sleep
proceso desde un bash
shell:
[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