GNU/Linux >> Belajar Linux >  >> Linux

bagaimana cara menggunakan kill SIGUSR2 di bash?

SIGUSR2 bergantung pada arsitektur dan dapat memiliki nilai dari 31 , 12 atau 17 . Hal ini dijelaskan dalam man 7 signal . Anda harus mengetahui nilai mana yang sesuai untuk sistem Anda. Biasanya ini dilakukan dengan melihat ke:

/usr/include/asm/signal.h 

Di sistem saya - Ubuntu 12.04 AMD 64 - memiliki nilai 12 :

#define SIGUSR2     12

Setelah Anda mengetahui nilai numerik yang tepat untuk SIGUSR2 di sistem Anda, Anda dapat mengirimkan sinyal ini menggunakan:

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

Di kotak Linux saya berfungsi.

Saya menjalankan infinite loop (pid =4574), lalu saya menjalankan

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

bunuh -l telah menunjukkan sinyal dan kill -SIGUSR2 telah mengirim sinyal (mematikan proses).

Periksa apakah Anda menjalankan Bash atau shell lain (mis., dasbor, busybox, dll.)


Cara lintas platform untuk melakukan ini:gunakan -s tanpa SIG awalan. Misalnya,:

kill -s USR2 $pid

Ini sepertinya bekerja pada MacOS dan linux.


Linux
  1. Cara menggunakan perintah riwayat Bash

  2. Bagaimana saya menggunakan cron di Linux

  3. Cara membunuh skrip python dengan skrip bash

  1. Cara menggunakan BusyBox di Linux

  2. Cara Menggunakan Perintah Uptime Di Ubuntu Linux

  3. cara menggeser nilai array di bash

  1. Cara Menggunakan if else Conditionals Statement di Bash Script

  2. Cara menggunakan auditd untuk memantau SYSCALL tertentu

  3. Bagaimana cara membunuh proses anak setelah batas waktu tertentu di Bash?