機械翻訳について

raise

指定したシグナルを実行中のプロセスに送信します。

void raise(int)

raise関数は、指定されたシグナルを実行中のプロセスに送信する破壊関数です。 この関数は、シグナルをプロセスに送信するkillコマンドの使用と類似しています。 raise関数を使用すると、プロセスの実行中に特定のポイントでシグナルを送信できます。

プロセス・シグナルの動作の詳細は、sigaction(2)およびkill(1)のマニュアル・ページを参照してください。

例8-37 実行中のプロセスを停止するためにraiseを使用する方法

プラグマを使用してスクリプトを開き、DTraceで破壊的関数を有効にします。 かわりに、この行を削除し、dtrace -wを使用してスクリプトを実行することもできます。 このスクリプトの述語は、指定された引数に対してプロセスIDを評価します。 この節には、プロセスを即時に停止するSIGINTシグナルを持つraise関数が含まれています。

#pragma D option destructive
syscall::: 
/pid==$1/
{ 
   raise(SIGINT); 
   exit(0) 
}

このスクリプトを正しく機能させるには、停止するプロセスIDを指定する必要があります。 テスト実行の例を次に示します:

xclock & sudo dtrace -wn 'syscall::: /pid==$1/{ raise(SIGINT); exit(0) }' $(pidof xclock)