「Ctrl + C」コマンドと「kill -2」コマンドを使用してシグナルを送信することの違いは何ですか?

「Ctrl + C」コマンドと「kill -2」コマンドを使用してシグナルを送信することの違いは何ですか?

たとえば、以下のスクリプトを実行すると整数信号とCtrl+C、スクリプトファイルはすぐに中断されます。ただし、Killコマンドを使用して同じプロセスを実行しようとすると、割り込み信号が有効になるようにコマンドが完了すると予想されますkill -2 pidsleepこの状況の原因は正確に何ですか?

#!/bin/bash

trap 'echo signal received!!' SIGINT

echo "The script pid is $$"
sleep 30

ベストアンサー1

違いは押されたCtrl-CときコアSIGINTスクリプトとコマンドにシグナルを送信しますsleep(つまり、スクリプト全体にシグナルを送信します)。プロセスグループ)、しかし(おそらくスクリプトから)kill -INT $pidシグナルをエクスポートします。$pid

スクリプトが一般的な対話型シェルで始まったと仮定すると(つまり、スクリプトがプロセスグループリーダーである場合)、pidを無効にするだけですkill -INT -$pid

おすすめ記事