「openvt」の代替...しかし、疑似端末(pts)の場合...存在しますか?
Openvrtはttyしか動作できませんが、ptsは動作できません。
(例:特定のptsおよびシェルptsターゲットユーザーのlauchコマンド)
Command <dev pts> <launch_command>
ベストアンサー1
ptyrunとptybandage
openvt
新しい疑似ターミナルを開き、疑似ターミナルに接続されている標準I / Oを使用して指定されたコマンドを実行するのと同じタスクを実行する既製のツールがたくさんあります。
- Daniel J. Bernsteinの原作
ptyrun
課ptybandage
- noshツールセットユーティリティに基づいて鉱山
ptyrun
と構築ptybandage
zpty
Zシェルの拡張モジュール
%背骨包帯tty /dev/pts/5 /dev/pts/6 %
もちろん、違いは、擬似端末の場合、実際に動作するためには、擬似端末のメイン側にどんなプロセスが付いていなければならないという点だ。するI/O 関連内容です。 Bernsteinのツールの場合、これはプログラムですptyio
。実際には、プログラム用のスクリプトに変換されptyrun
ます。プログラムは。ptybandage
ptyget
ptyio
ptyspawn
pty-run
pty-get-tty
open-controlling-tty
つまり、より細かい作業が必要な場合は、疑似ターミナルマスターを開き、チェーンをロードするだけです。何残りの作業を行うには、電話または直接pty-get-tty
お問い合わせくださいptyget
。
ターミナルマルチプレクサ
ターミナルマルチプレクサtmux
とターミナルのscreen
場合、もちろん新しい(内部)ターミナルを起動し、それに接続されたコマンドを実行するためのいくつかのメカニズム(これらのプログラムの一部)があります。詳しくは、プログラムの資料を参照してください。
既存の擬似端末
これらのツール(ptyrun
、ptybandage
など)の使用いいえこれが行うことは、追加されたコマンドを実行することです。既存の疑似端末。彼らはいつも新鮮なものを作ります。
既存の擬似端末に接続されたコマンドを実行する必要はほとんどありません。しかし、それは可能です。たとえば、私のツールセットを使用してこれを行うことができます。TTY
環境変数を次のように設定します。スレーブ側既存の擬似端末のデバイスファイル名とopen-controlling-tty
ツールを介して呼び出されたコマンド。
TTY=/dev/pts/5 オープン制御-tty $SHELL
もちろん、これは、互いに関連していない同時プロセス間で端末に対して競合を引き起こし、タスク制御シェルが1つのプロセスに対して実行するタスクの量を意識しないようにする。 ☺
また、次の場合、複数のSSHサーバーとターミナルエミュレータがマスターをシャットダウンします。彼らスレーブ端末処理が終了する。
これらは何もない
最後に、これは、既存の擬似端末で既存の対話型シェルを駆動して入力にコマンドを送信するための入力パディングメカニズムではないことに注意してください。彼らはみんな一緒に来ます。新しい(新)疑似端末として扱います。
しかし、openvt
それも本当ではありません。
追加読書
- https://unix.stackexchange.com/a/249801/5132
- バーンスタイン、ダニエル(1996)。
ptyrun
。DJBウェア。 - バーンスタイン、ダニエル(1996)。
ptybandage
。DJBウェア。 - バーンスタイン、ダニエル(1996)。
ptyio
。DJBウェア。 - バーンスタイン、ダニエル(1996)。
ptyget
。DJBウェア。 - ジョナサンデボインポラード(2014)。
ptyrun
。スナックガイド。ソフトウェア。 - ジョナサンデボインポラード(2014)。
ptybandage
。スナックガイド。ソフトウェア。 - ジョナサンデボインポラード(2014)。
pty-run
。スナックガイド。ソフトウェア。 - ジョナサンデボインポラード(2014)。
pty-get-tty
。スナックガイド。ソフトウェア。 - ジョナサンデボインポラード(2014)。
open-controlling-tty
。スナックガイド。ソフトウェア。 - https://unix.stackexchange.com/a/470853/5132