GNU/Linux >> Znalost Linux >  >> Linux

jak použít kill SIGUSR2 v bash?

SIGUSR2 je závislá na architektuře a může mít hodnotu z 31 , 12 nebo 17 . To je popsáno v man 7 signal . Budete muset zjistit, která hodnota je vhodná pro váš systém. Obvykle se to provádí tak, že se podíváte do:

/usr/include/asm/signal.h 

V mém systému – Ubuntu 12.04 AMD 64 – má hodnotu 12 :

#define SIGUSR2     12

Jakmile budete znát správnou číselnou hodnotu pro SIGUSR2 ve vašem systému můžete tento signál odeslat pomocí:

kill -SIGNO PID
# In this case
kill -12 PID

Na mém Linuxovém boxu to funguje.

Běžel jsem nekonečnou smyčku (pid =4574), pak jsem běžel

#!/bin/bash
kill -l | grep USR2
kill -SIGUSR2 4574

kill -l ukázal signál a zabil -SIGUSR2 odeslal signál (zabil proces).

Zkontrolujte, zda používáte Bash nebo nějaký jiný shell (např. dash, busybox atd.)


Meziplatformní způsob, jak to udělat:použijte -s bez SIG předpona. Např.:

kill -s USR2 $pid

Zdá se, že to funguje na MacOS i linuxu.


Linux
  1. Jak používat příkaz Uptime v Ubuntu Linux

  2. Jak zabít python skript pomocí bash skriptu

  3. Jak použít Ctrl+C k ukončení všech procesů na pozadí spuštěných ve skriptu Bash?

  1. Jak používat BusyBox na Linuxu

  2. Jak používat příkazy historie Bash

  3. Jak používám cron v Linuxu

  1. Jak používat příkaz if else Conditionals ve skriptu Bash

  2. Jak používat auditd ke sledování konkrétního SYSCALL

  3. Jak zabít podřízený proces po daném časovém limitu v Bash?