替代“openvt”,但用於偽終端(pts)。存在嗎?
替代“openvt”…但對於偽終端(pts)…存在嗎?
Openvrt 只執行 tty…而不是 pts。
(範例:特定 pts 中的 lauch 命令和 shell pts 目的地的使用者)
Command <dev pts> <launch_command>
ptyrun 和 ptybandage
有很多現成的工具可以做的事情相當於
openvt
:打開一個新的偽終端並執行一個指定的命令,其標準 I/O 連接到該偽終端。
- Daniel J. Bernstein 的原作
ptyrun
和ptybandage
- My
ptyrun
andptybandage
build on nosh 工具集實用程序zpty
Z shell 中的擴展模組% **tty ; ptybandage tty** /dev/pts/5 /dev/pts/6 %
當然,不同之處在於,在偽終端的情況下,必須將一些程序附加到偽終端的主端才能實際使用 I/O*執行某些操作。*就伯恩斯坦的工具而言,這就是
ptyio
程序。ptyrun
並且ptybandage
實際上是演變為ptyget
、ptyio
和ptyspawn
程序的腳本。我的工具的情況與此類似,其中pty-run
程序是內部 I/O 主力,與pty-get-tty
和結合使用open-controlling-tty
。這意味著如果想要更細粒度的操作,只需打開偽終端主端,然後鍊式載入一些東西來完成剩下的工作,可以呼叫
pty-get-tty
或ptyget
直接呼叫。終端多路復用器
在終端多路復用器
tmux
和的情況下screen
,當然有一些機制(它們是這些程序的一部分)來啟動一個新的(內部)終端並執行附加到它的命令。有關詳細資訊,請參閱這些程序的文件。現有的偽終端
這些工具(
ptyrun
,ptybandage
等)不做的是執行將它們附加到現有偽終端的命令。他們總是創造新鮮的。幾乎不需要執行附加到現有偽終端的命令。但這是可以完成的。例如,可以使用我的工具集來完成。只需將
TTY
環境變數設置為現有偽終端的從open-controlling-tty
設備文件名,並通過工具呼叫命令。TTY=/dev/pts/5 open-controlling-tty $SHELL
當然,這會在不同的不相關的並發程序之間產生對終端的爭用,並讓人們痛苦地意識到工作控制 shell 正在為一個程序做多少工作。☺
另請注意,如果從屬端子程序退出,幾個 SSH 伺服器和終端仿真器將關閉主控端。
所有這些都不是什麼
最後,請注意,這些不是輸入填充機制,用於在現有偽終端上驅動現有互動式 shell,向其輸入發送命令。它們都將新程序附加到(新的)偽終端。
但那也不
openvt
是。進一步閱讀
- https://unix.stackexchange.com/a/249801/5132
- 丹尼爾 J. 伯恩斯坦 (1996)。
ptyrun
. djbwares。- 丹尼爾 J. 伯恩斯坦 (1996)。
ptybandage
. djbwares。- 丹尼爾 J. 伯恩斯坦 (1996)。
ptyio
. djbwares。- 丹尼爾 J. 伯恩斯坦 (1996)。
ptyget
. djbwares。- 喬納森·德博因·波拉德 (2014)。
ptyrun
. 小吃指南。軟體。- 喬納森·德博因·波拉德 (2014)。
ptybandage
. 小吃指南。軟體。- 喬納森·德博因·波拉德 (2014)。
pty-run
. 小吃指南。軟體。- 喬納森·德博因·波拉德 (2014)。
pty-get-tty
. 小吃指南。軟體。- 喬納森·德博因·波拉德 (2014)。
open-controlling-tty
. 小吃指南。軟體。- https://unix.stackexchange.com/a/470853/5132