端末でコマンドを実行し、コマンドが開始されるとすぐに、そのPIDを別のコマンドに送信して監視できるかどうか疑問に思います。
こんなこともしなければならないのに、
dd if=/path/of/file of=/path/of/destination
その後、を使用して実行を監視する必要がありますpidstat
が、pidstat
pidが必要で、片側から他方にpidを送信する方法がわかりません。
ディスク使用量、メモリ使用量、CPU使用量、および経過時間を監視する必要があります。誰もがこれを行う方法を知っていますか?
答え1
Bash(およびおそらく他のシェル)では、シェル変数を使用して最後のバックグラウンドプロセスのPIDをプログラムでキャプチャできます$!
。つまり、次のことを行うことが可能です。
dd if=/path/of/file of=/path/of/destination & pidstat -p $!
答え2
コマンドの最後に&を追加するだけです。
dd if=/path/of/file of=/path/of/destination &
上記のコマンドを実行するとpidが提供され、このpidを使用して監視できます。
テスト
cat infinite.sh
#!/bin/bash
while :
do
echo "Press [CTRL+C] to stop.."
sleep 1
done
次に、最初の端末で以下のように上記のコマンドを実行します。
-bash-3.2$ ./s.sh &
[1] 25666
-bash-3.2$ Press [CTRL+C] to stop..
Press [CTRL+C] to stop..
Press [CTRL+C] to stop..
Press [CTRL+C] to stop..
これで2番目の端末を開き、それを使用してkill -9 25666
プロセスを停止できます。あなたの場合は、2番目の端末を開いて最初の端末から取得したコマンドをdd
使用してコマンドを監視できます。pid