さまざまなバックグラウンドプロセスに接続してコンソール出力を表示できることを知っていますが、すべてのプロセスの出力を一度に表示する方法はありますか?すばやくスクロールして読みにくいかもしれませんが、これは可能ですか?
答え1
さて、バックグラウンドのシェルから複数のプロセスを作成し(すべてstdoutまたはstderrを使用している場合)、次のようになります。場所コンソールの混合情報 - 混合とは、行の途中で複数のプロセスのデータを混在させることができることを意味します。
おそらくあなたが探しているのは、ファイル(システムサービスが一般的に使用するもの/var/log
)にログを記録してからファイルを表示することです。この目的にはいくつかのユーティリティがあります。(tail
重要なオプション-F
、ファイルを監視し、追加された行を印刷します)less
同じ操作を対話的に実行できます(フォローモードで)。つまり、ファイルに従うことができ、後ろにスクロールできます。 )。ほぼすべての場所で発見される「クラシック」ユーティリティであるmost
もう一つの興味深いファイルページングユーティリティですmore
(DOSとWindowsでも同様です)。
最後にtee
興味深いのは、stdinをstdoutにコピーすることです。そしてファイルとして保存すると便利です。
答え2
どちらもログファイルに書き込む場合は、マルチテールを使用して同時に追跡できます。
答え3
すべてのプロセス?ほとんどのバックグラウンドプロセスは実際に意図的にファイルディスクリプタを閉じるため、ファイルディスクリプタを回収したり、プロセスに新しいファイルディスクリプタを認識させる簡単な方法はありません。
他の人が言ったように、すべてのメッセージに対してsyslogを見ることができます。どのファイルを探すべきかを知っている場合は、そのファイルを選択してください。ただし、ほとんどの場合、出力を送信するように定義された場所がないため、ユーザー以外のすべてのプロセスの出力を見ることはできません。