stdout に出力するコンソールがあります。
コマンド プロンプトにアクセスして stdout への出力を無音にするにはどうすればよいですか?
ありがとう 。
いくつかの選択肢があります:
シェルのリダイレクトとプロセス制御演算子を使用して、コマンドの標準出力と標準エラーの両方をファイルに送信し、バックグラウンドでコマンドを起動します。
たとえば、bash
次のようになります。
make all 1>make.log 2>&1 &
ストリームごとに別のファイルを使用することもできます。
make all 1>make.out 2>make.err &
コマンドはバックグラウンドで起動され、終了するとシェルから通知されます。それまでの間、テキスト ビューアーを使用するかtail
、出力ファイルだけを使用して、何が起こっているかを確認できます。
エラーメッセージがめったになく、すぐに表示したい場合は、標準出力をリダイレクトすることしかできません:
make all 1>make.log &
コンソール メッセージをまったく気にしない場合は、次の宛先に送信して/dev/null
ください。
make all 1>/dev/null &
新しいコンソールに関する懸念がログイン手順である場合は、GNU screen
またはなどのツールを使用しtmux
て、現在のセッション内に追加のコンソール ウィンドウを作成できます。
プロセスが既に開始されているコンソールにアクセスしたい場合は、まず適切なキーボード ショートカットでプロセスを停止してから、バックグラウンドで続行する必要があります。たとえば、Linux/bash
では次のCtrl+Z
ショートカットを使用します。
$ make all
1/10
2/10
^Z
[1]+ Stopped make all
$ bg
[1]+ make all &
3/10
$ 4/10
5/10
6/10
7/10
8/10
9/10
10/10
[1]+ Done make all
$
残念ながら、既に実行中のプロセスの出力をリダイレクト/クワイエットする簡単な方法はありません。メッセージは依然としてコンソールにあふれています。
もちろん、コンソールへの短期アクセスのみが必要な場合 (出力ファイルを確認する場合など) は、終了するまでプロセスを再起動できません。
$ make all
1/10
2/10
^Z
[1]+ Stopped make all
$ ls
1 2 Makefile
$ fg
make all
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
$
bg
およびのfg
ジョブ制御組み込みコマンドの詳細についてbash
は、こちらを参照してください。
コンソール出力を見たくない場合は、コンソールにログインしないでください。コンソールとして想定されていないデバイスにログ メッセージが書き込まれている場合は、システムの設定が間違っています。コンソール デバイスを設定できるように、起動時にカーネル コマンド ラインを変更する必要があります。
ほとんどの場合、コンソールとしてメイン ディスプレイにログを記録している GUI のないシステムを使用しています。その場合、/etc/rsyslog.conf のメッセージの重大度を kern.* (デフォルト) から kern.err に変更できます。非常に多くのメッセージをログに記録している壊れたプログラムを修正することも検討してください。