ツールセットの歴史

ツールセットの歴史

curses私たちはバックグラウンドで.basedアプリケーションを実行したいと思います。

これらのアプリケーションは、ログファイルやその他のコンテキスト端末接続をマッピングするためにcurses内部的に使用される現在のポート名を使用して取得します。tty

curses一部のテストでは、キーボードを読み取れないアプリケーションの入力を既知のpts有効なキーボードにリダイレクトするだけです。したがって、これを行うためにtty(またはpseudo-tty)を予約したため、バックグラウンドで実行できます。

ptsttyをエミュレートしたり、そのような自動実行目的を維持することは可能ですか?私たちはそれらを活性化するだけですcrontab

答え1

ツールセットの歴史

そのような最初のツールは、Daniel J. Bernsteinの「pty」パッケージで、Rich Salzが「Ginsuナイフ」と描写していました。 「pty」パッケージのバージョン4は1992年にリリースされましたcomp.sources.unix(Volume 25、Issues 127-135)。 World Wide Webではまだ見つかります。 Paul Vixieは当時こう説明しました。

私は何と言うことができますか?切って、カチカチ切って、皿洗いし、犬散歩させることです。これは「ただ働きます」。言い換えれば、指示に従うと、髪を引っ張ったり、挽いたり、他の標準的な移植活動なしで機能するパッケージを入手したりすることができます。

Bernsteinは、後で「ptyget」パッケージを使用して1999年4月7日以前にそれを更新し、次のように発表しました。

私は新しいpseudo-ttyアロケータptygetを組み立てました。アルファ版はで利用可能ですftp://koobera.math.uic.edu/pub/software/ptyget-0.50.tar.gz。参加するには、ptygetメーリングリストがあります。に空のメッセージを送信してください [email protected]。私はptygetのインターフェースを最初からデザインしました。 ptyよりもモジュール化されています。デフォルトのptyインタフェースは3つの部分に分けられます。

  • ptyget:新しいpseudo-ttyを割り当て、それを選択したプログラムに渡す小さな低レベルプログラム(パッケージ内の唯一のsetuidプログラム)
  • ptyspawn:擬似端末で子プロセスを実行し、子プロセスが終了するのを待って停止状況を観察するもう1つの小さなプログラムです。
  • ptyio:データを前後に移動するもう少し大きな別のプログラム

古い "Ginsu"ナイフはpty"Ginsu ptybandage"と表記されていますptyget ptyio -t ptyspawn。これはネットワークプログラムをpseudo-ttyに接続するために使用され、今では「Ginsu」とpty -d表記されています。そしての同義語です。セッション管理機能を別々のパッケージに分割しました。ptyrunptyget ptyio ptyspawnnobufptyget ptyio -r ptyspawn -23x

別のパッケージは「sess」パッケージです。

ちなみに、「ptyget」は、出版された数少ないケースの1つであるBersteinのまだリリースされていない「リワークされた」ビルドシステムの初期バージョンを示すことで有名です。 dependonそれは明らかな信号ですredo-ifchange

利用可能なツールセット

Dru Nelsonは「pty」と「ptyget」のバージョン4をリリースしました。

Paul Jarcは、オペレーティングシステムが実際に提供しなくなった元のバージョンでオペレーティングシステム固有の擬似端末デバイスioctlを処理しようとするptygetの修正バージョンをリリースしました。

nosh ソースパッケージには、Laurent Bercot のツールと nosh パッケージの独自の疑似端末管理コマンドを使用する同様のタスクとptybandangeスクリプトが付属しています。ptyrunexecline

いくつかの例は次のとおりです。

ptybandageAIXのJurjgen Oskamパスワードプロンプトの制御端末を明示的に開いて読み取るプログラムにこの文書の入力を提供します。

$ptybandage dsmadmc <<EOF>uit.txt
ヨスカム
パスワード
クエリセッション
クエリプロセス
辞める
EOF

ptyrunOpenBSDでAndy Bradfordを使用するAndy Bradforddaemontoolsとucspi-tcpで、bgplgsh対話型ルーター制御プログラムが端末と通信していると考えながらネットワーク経由でアクセスできるようにします。

#!/bin/sh
2>&1を実行
envuidgid rviews tcpserver -vDRHl0 0 23 ptyrun /usr/bin/bgplgsh 実行

追加読書

関連情報