プロセスが中断すると、私が知っているように、出力はもう返されません。ただし、常にping
を中断した後 コマンドには実行の統計があり、私が知っているように、それは出力の一部です。
[email protected]:~$ ping 4.2.2.4
PING 4.2.2.4 (4.2.2.4) 56(84) bytes of data.
64 bytes from 4.2.2.4: icmp_seq=1 ttl=51 time=95.8 ms
64 bytes from 4.2.2.4: icmp_seq=2 ttl=51 time=92.3 ms
^C
--- 4.2.2.4 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 92.321/94.052/95.783/1.731 ms
[email protected]:~$
どのように機能しますか?
承認された回答:
Ctrl + C 端末にSIGINTをフォアグラウンドプロセスグループに送信させます。 SIGINTを受信するプロセスは何でも実行でき、シグナルを無視することもできます。 SIGINTに対する一般的な反応は、正常に終了することです。つまり、クリーンアップした後などです。
ping
単に設計されています SIGINTに統計を出力してから、終了します。
他のツールは、SIGINTでまったく終了しない場合があります。例えば。対話型シェルの通常の動作(コマンドを実行していないとき)は、コマンドラインをクリアしてプロンプトを再描画することです。
コマンドを終了するように設計されたシグナルはSIGINTだけではありません。マニュアルを参照してください(man 7 signal
)、デフォルトのアクションがプロセスを終了することである多くのシグナルがあります。 kill
デフォルトでSIGTERMを送信します。 SIGTERMはSIGINTではありません。どちらも無視できます。 SIGKILLをキャッチ、ブロック、または無視することはできませんが、最後に選択する必要があります。