bgの後でコマンドからの出力を停止することは可能ですか?


8

この状況を想定します

wget http://file 

wgetがファイルのダウンロードを開始します。

バックグラウンドに入れました。

^Z
bg

コマンドはバックグラウンドになります。

しかし、その出力はまだコンソールにあります-コンソールがまだ開いている場合。

コマンドの出力を停止することは可能ですか?

Wgetは単なる例です。大量の出力を書き込むコマンドについて考えます。

コンソールで、bgターミナルを開いてから閉じて別のターミナルを開くことができることを知っていますが、使用可能なターミナルが1つだけで、疑似ターミナルがない場合はどうなりますか?


2
実行中のプロセスの出力リダイレクトを変更する方法を参照してください。あなたはreptyrを試すことができます。
Mark Plotnick、2017年

回答:


2

コマンドの実行にコマンドの出力を実際にリダイレクトするソリューションは次のとおりです。https//superuser.com/questions/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a-ログファイル

ターミナルを使用する日常のシナリオでより使いやすいソリューションの場合、バックグラウンドでwget -o log http://file & 実行wgetしてlog、ターミナルの代わりに出力を書き込むことができ ます。もちろん、この場合(wgetフォアグラウンドで実行した場合でも)出力はまったくtail -f log表示されませんが、出力が大きくなるにつれて出力を確認することはできます。


2

コンソールにメッセージを出力せずにwget(またはその他のcmd)をバックグラウンドで実行し続けたいという意味ですか?それが問題なら、あなたは試すことができますredirection

$ wget http://file > /dev/null

上記のcmdはリダイレクトするstdoutには/dev/null、あなたは、エラーメッセージ以外のメッセージは表示されません。エラーメッセージも表示したくない場合は、これを試してください

$ wget http://file 1>/dev/null 2>&1

あなたはredirectionより詳細な情報のためにググることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.