GNU/Linux >> LINUX-Kenntnisse >  >> Linux

wie benutzt man kill SIGUSR2 in bash?

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.


Linux
  1. So verwenden Sie BusyBox unter Linux

  2. So verwenden Sie Bash-Verlaufsbefehle

  3. Wie ich Cron unter Linux verwende

  4. Verwendung von auditd zur Überwachung eines bestimmten SYSCALL

  5. Wie kann man einen untergeordneten Prozess nach einem bestimmten Timeout in Bash beenden?

So verwenden Sie den Bash-Lesebefehl

So verwenden Sie Bash-Dateitestoperatoren in Linux

So verwenden Sie den Datumsbefehl in Bash-Skripten unter Linux

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

Wie verwende ich die Linux-Bash-Shell in Windows 10?