echo
システム状態を監視するためにCGIスクリプトを作成しているため、その情報を端末に使用または出力する必要がありますcat
。問題は、systat
これが対話型コマンドであるため、画面に何も印刷しないことです。
試してみましたsystat | echo
が、systat | cat
前者は結果が出ませんが、後者はsystat
。
編集する
さて、明確にしてみましょう。デフォルトでは、同じシェルスクリプトを要求しますmonitor.sh
。 exec を使用して実行すると、./monitor.sh
新しいプロセスが開始され、結果が出力され、終了systat
します。
次のようにする必要があります。
root@HPC:~/playground # ./monitor.sh
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 12.0
/0% /10 /20 /30 /40 /50 /60 /70 /80 /90 /100
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root@HPC:~/playground #
答え1
これsystat
FreeBSDのマニュアルページ説明する、
- 「グローバル」コマンドソルバーはすべてのキーボード入力を処理します。
- これ
quit
コマンドは「グローバル」コマンドソルバーによって解釈されます。systat
私たちにやめると言います。- これ
quit
コマンドは次のように省略できます。q
。
- これ
- コマンドラインに「showコマンド」を提供できます。
-
。 (かどうかは明示的に言及されていません。quit
「表示コマンド」に適しています。 )
だから残念ながら、これはsystat -q
動作しません。その他試してみる:
systat -quit
(sleep 5; echo quit) | systat
- (これをで入力する必要があるかもしれません。
sh -c '(sleep 5; echo quit) | systat'
) (sleep 5; echo :quit) | systat
または を実行する必要がありますsh -c '(sleep 5; echo :quit) | systat'
。 (追加の注意事項:
.)
- (これをで入力する必要があるかもしれません。
systat& sleep 5; kill "$!"
- (これをで入力する必要があるかもしれません。
sh -c 'systat& sleep 5; kill "$!"'
)
- (これをで入力する必要があるかもしれません。
希望する結果を得るには、睡眠スケジュールを調整する必要があります。