リモートコンピューターにsshし、名前付きパイプにコマンドを発行するPythonを使用して、ムービーコントローラー(一時停止/停止...)を作成しています
echo -n q > ~/pipes/pipename
ターミナル経由で ssh して自分で実行すると、これが機能することがわかっているので、名前付きパイプのリダイレクトの設定に問題はありません。私の問題は、ssh セッションのセットアップに時間がかかる (1 ~ 3 秒) ことですが、一時停止コマンドを瞬時に実行したいのです。したがって、次のように永続的なパイプを設定することを考えました。
controller = subprocess.Popen ( "ssh -T -x <hostname>", shell = True, close_fds = True, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE )
次に、次のようにコマンドを発行します
controller.stdin.write ( 'echo -n q > ~/pipes/pipename' )
ssh
問題はインタラクティブであるため、キャリッジリターンが必要だと思います。この質問をしたほぼすべての人が既存のモジュールを使用するように言われているため、これが私の問題の始まりです。
それは結構ですが、私はとても近いです。キャリッジ リターンを含める方法を知る必要があるだけです。それ以外の場合は、これらの他のすべてのモジュールを学習する必要があります/etc/hosts
。 ssh キーレス認証)。