私はtimeコマンド(/ usr / bin / time)を試してきました。タイムコマンドを以下のように実行させました
/usr/bin/time -v sleep 30
もう一方の端末でプロセスps -a
のPIDを確認しました。これで、プロセスsleep
のスリープを終了したスリープにメッセージを送信しますkill -1 PID
。スリープは時間の問題で実行されていたため、リソース使用量の統計を以下のようにリストしました。
Command being timed: "sleep 30"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:21.81
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 2160
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 180
Voluntary context switches: 2
Involuntary context switches: 2
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
しかし、驚いたことに、Signals Deliveredフィールドには0があります!そんなことがあるものか?
編集:
の代わりにsleep 30
、次のスクリプトを試してみました。
trap "echo Hello" 1 2
sleep 30
次に、上記のスクリプトの時間を計り、シグナル1と2をスクリプトに送信します。その場合も、Signals Deliveredフィールドはまだ0でした。これにより、Signals Deliveredフィールドは0であると結論付けられます。これは、シグナルが処理されていないためではありません。