すでに実行中のプログラムの出力を取得するには?

すでに実行中のプログラムの出力を取得するには?

stdoutログファイルに出力するPythonプログラムがあります。

しかし、私がこのファイルを作成する人は、ファイルが別の端末またはバックグラウンドで実行されているときにファイルの出力を表示できるように設定できるかどうかを知りたいと思います。たとえば、プログラムは起動時に開始され、ユーザーはsshそのプログラムに入り、実行中の出力を確認したいとします。

それでは、現在実行中のプロセスの出力を表示する方法はありますか?

可能であれば、bashまたはpythonを使用することをお勧めします。

答え1

2つのオプションがあります。 1つはそれを使用してログに記録されているログファイルを表示し、2つ目は後で(再)接続できる(または同様の)セッションでtail -fプログラムを開始することができます。screen

ログファイルがどこにあるかわからない場合は、同様のツールを使用してtopプロセスpsIDを見つけ、lsof -p12341234がプロセスIDの場合は、そのプロセスに対して開いているファイルを一覧表示できます。

答え2

私は個人的にless同じ用途に使用することを好みます。

less your_file

一度起動すると、lessコマンドF(コマンドラインフラグではない)がファイルの終わりを積極的に監視し始めます。このモードでファイルの終わりを見ると、出力の追加が停止し、CTRLページclessめくることができます。とても便利です。

関連情報