回答:
そのプロセスの標準ファイル記述子を取得できます。例stdout
:
tail -f /proc/<pid>/fd/1
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
ここにはいくつかのオプションがあります。1つは、コマンドの出力をファイルにリダイレクトし、tail
そのファイルに追加された新しい行をリアルタイムで表示するために使用することです。
別のオプションは、の内部でプログラムを起動することですscreen
。これは、ある種のテキストベースのターミナルアプリケーションです。Screenセッションはアタッチおよびデタッチできますが、名目上は同じユーザーのみが使用することを意図しているため、ユーザー間でセッションを共有する場合。
それ以外の場合は、プロセスをトレースして、それが何をしているかを確認できますstrace
。
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
:プロセスID PIDを使用してプロセスに接続し、トレースを開始します。-s SIZE
:印刷する最大文字列サイズを指定します(デフォルトは32です)。-o filename
:トレース出力を画面(stderr)ではなくファイルfilenameに書き込みます。以下に示すこれらのコマンドを使用して、実行中のプロセスを別の端末に接続できます。
retty
(マニュアルページ:retty)reptyr
screen
例:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install retty
、rettyにはいくつかの制限があります。回答に記載されているmanページをご覧ください。