GNU/Linux >> Linux の 問題 >  >> Linux

bashでkill SIGUSR2を使用するには?

SIGUSR2 アーキテクチャに依存し、31 の値を持つことができます 、 12 または 17 .これは man 7 signal で説明されています .システムに適した値を見つける必要があります。通常、これは以下を調べることによって行われます:

/usr/include/asm/signal.h 

私のシステム - Ubuntu 12.04 AMD 64 - の値は 12 です :

#define SIGUSR2     12

SIGUSR2 の適切な数値がわかったら お使いのシステムでは、次を使用してこのシグナルを送信できます:

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

私のLinuxボックスでは動作します。

無限ループ (pid =4574) を実行してから実行しました

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

kill -l シグナルを表示し、kill -SIGUSR2 シグナルを送信しました (プロセスを強制終了します)。

Bash またはその他のシェル (dash、busybox など) を実行しているかどうかを確認してください。


これを行うクロスプラットフォームの方法:-s を使用します SIG なし プレフィックス。例:

kill -s USR2 $pid

これは、MacOS と Linux の両方で動作するようです。


Linux
  1. Bashで特定のタイムアウト後に子プロセスを強制終了する方法は?

  2. Ctrl+C を使用して、Bash スクリプトで開始されたすべてのバックグラウンド プロセスを強制終了する方法は?

  3. bashで配列値をシフトする方法

  1. LinuxでBusyBoxを使用する方法

  2. Bash履歴コマンドの使用方法

  3. Linuxでcronを使用する方法

  1. Bashスクリプトでifelse条件文を使用する方法

  2. UbuntuLinuxで稼働時間コマンドを使用する方法

  3. auditd を使用して特定の SYSCALL を監視する方法