だから私はこれを理解しようとして頭を悩ませてきました、そして私は少し立ち往生しています。
Python の subprocess モジュールと Popen を使用して PuTTY セッションを開き (plink.exe を使用)、リモート ホストに接続しています。これは、セッション出力にアクセスできることを意味します。
コマンドを見つけようとしているか、セッションを処理しているリモート sshd プロセスの PID を教えてくれる実行可能なスクリプトを作成しようとしています。SSH セッションが 1 つしかない場合は、「ps -f | grep sshd」を使用して sshd プロセスを一覧表示し、その行を解析して PID を見つけることができました。
問題は、このホストへの複数の SSH 接続が同時に存在するため、sshd の複数のインスタンスが実行されていることです。同じセッションからコマンドを実行することで、特定のセッションを実行しているプロセスを特定する方法を知っている人はいますか?
注: 次のスクリプトは、OS X および多くの形式の Linux で機能します。
#!/bin/sh
TTY=$(tty)
TTYID=${TTY##*/}
ps -f | grep $TTYID
これにより、正しい PID を持つ行が返され、Python で解析できます。残念ながら、「ps」に TTY フィールドが実装されていない QNX を使用しているため、そのフィールドのすべてが単に「?」と表示されます。他のアイデアはありますか?
ありがとう!