"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
물론 이는 서로 관련되지 않은 동시 프로세스 간에 터미널에 대한 경합을 일으키고 작업 제어 셸이 하나의 프로세스에 대해 수행하는 작업의 양을 뼈저리게 인식하게 만듭니다. ☺
또한 다음과 같은 경우 여러 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