TTY 텍스트 가상 콘솔을 생성하는 방법은 무엇입니까?

TTY 텍스트 가상 콘솔을 생성하는 방법은 무엇입니까?

내 원격 컴퓨터의 Linux 버전(Kali v2.0)에 일종의 버그가 있는 것으로 생각됩니다.TTY 텍스트 콘솔을 시작할 수 없습니다내가 기계에 앉아서 를 누를 때까지 CtrlAltFn.

원격으로 로그인하는데 사용해요SSH그 컴퓨터에 접속한 다음 TTY n을 사용하여 액세스했습니다.스파이, 예를 들면 다음과 같습니다.

# conspy 6

내 SSH 클라이언트(이 경우 Putty)를 TTY6으로 보냅니다.

그러나 TTY 콘솔이 시작되지 않는 한검은 화면커서가 깜박입니다.
그래서 먼저 다음을 보냅니다.

# agetty 38400 tty6 &

그런 다음 TTY6이 실행되기 시작하여 이번에는 로그인하여 상호 작용할 수 있었지만 다음과 같은 이상한 메시지가 표시되었습니다.

Kali GNU/Linux 2.0 kali tty6
kali login: luis
Password:
Linux kali 4.0.0-kali1-686-pae #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) i686

The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
-bash: cannot set terminal process group (3662): Inappropriate ioctl for device
-bash: no job control in this shell

이 명령이 올바른 접근 방식 agetty입니까 ?TTY 생성텍스트 가상 콘솔?

답변1

이것은 의도적으로 설계된 것입니다.

내 생각에 내 원격 컴퓨터의 Linux 버전(Kali v2.0)에 어떤 종류의 버그가 있기 때문에 내 TTY 텍스트 콘솔은 내가 컴퓨터에 로컬로 앉아 를 누를 때만 시작됩니다.CtrlAltFn

이것은 실수가 아닙니다. 이것이 systemd Linux가 설계된 대로 작동하는 방식입니다. 커널 가상 터미널에 대한 TTY 로그인 서비스는 logind포그라운드로 전환할 때 요청 시 시작됩니다. 원격으로 머신에 액세스하고 ConSpy를 사용하면 물론 다음을 수행할 수 있습니다.아니요커널 가상 터미널을 포그라운드로 전환합니다.

agetty명령이 TTY 텍스트 가상 콘솔을 생성하는 올바른 방법입니까?

예, 아니오. 예, 이것은게티/로그인 서비스. 아니요, 자체적으로 가상 터미널을 생성하지 않습니다. 아니요, 직접 실행하지는 않습니다.

앞서 언급했듯이 logind이렇게 하세요. 각 가상 터미널에는 systemd라는 서비스가 있습니다. 이것이 실행되는 것입니다. 서비스를 수동으로 시작하거나 요청 시 시작할 수 있습니다.autovt@ttyN.serviceagettylogind

시스템 문제 screentmux시스템 관련 문제.

물론 앞서 언급했듯이 커널의 가상 터미널 하위 시스템과 ConSpy를 screen시스템의 서버 및 클라이언트 부분 으로 사용하고 있습니다 tmux. screen또는 사용으로 전환할 수 있습니다 tmux.

screen문제는 and tmux가 systemd와 잘 상호 운용되지 않는다는 것입니다. 이는 알려진 시스템 문제이며 의도적으로 설계된 것입니다. systemd에서 서비스로 직접 관리되는 로그인 세션의 서버 부분을 시작하면 screen(서비스가 수행하고 모드에서 SSH를 실행할 때 서비스가 수행하는 것처럼) systemdtmuxautovt@ttyN.servicesshd@connection.serviceAccept=yes로그아웃 시 서버 종료, 설계상 서비스가 종료되면 서비스에 남아 있는 모든 프로세스가 종료되고 이러한 로그인 세션 서비스에서 로그아웃하는 것도 종료된 것으로 간주됩니다.

세상에는 변경을 포함하여 이 디자인 충돌에 대해 사용할 수 있는 여러 가지 해결 방법 이 있습니다 [email protected].screentmux그 자체호스팅 서비스를 입력하세요. 따라서 시작 screen하거나 tmux로그인하여 대화형으로 실행할 필요가 없습니다 . systemd를 통해 시작 및 중지된 본격적인 서비스로 시작할 수 있습니다.

이 시점에서 백그라운드 서버 프로세스에 포함되거나 파생된 모든 것은 기껏해야 과도하게 엔지니어링되었습니다 screen.tmux모두이는 systemd가 관리 screen하거나 tmux서비스가 수행해야 하는 작업이며 서버를 "보호"할 필요가 없습니다. (아이러니하게도 screensystemd tmux의 문제는끝나고 나면 더 있어요대화형 로그인 세션에서 프로세스를 안전하고 안정적으로 "데몬화"하는 것이 사실상 불가능한 이유에 대한 예를 들어보세요. )

대안

대안을 언급하셨으니 여기에 또 다른 대안이 있습니다. nosh에는 대안이 있습니다.사용자 공간가상 터미널 시스템. systemd에서 nosh 서비스 관리자와 그 아래의 일부 nosh 및 서비스를 실행하고 SSH 로그인 세션을 통해 시뮬레이션된 터미널과 통신할 수 있습니다. (현재처럼 장치 이름을 직접 연결하지 않도록 ConSpy를 조정하면 vcsa 호환 디스플레이 버퍼를 사용할 수 있으므로 ConSpy를 사용하여 시뮬레이션된 터미널을 볼 수도 있습니다.) "데몬화"하지 않고 한 가지 작업만 수행합니다. 터미널이며 의사 터미널의 메인 끝과 시뮬레이션된 디스플레이 및 입력 사이에 위치합니다.ttylogin@vcN-ttyterminal-emulator@vcNconsole-ncurses-realizerconsole-terminal-emulator

이렇게 하면 여러 가지 측면 이점이 있습니다. 커널 공간 설계 제약에 의해 제한되지 않으므로 커널에 내장된 에뮬레이터 프로그램보다 더 완전한 DEC VT 에뮬레이션을 제공합니다. 일반적인 DEC 제어 시퀀스를 사용하여 터미널의 크기를 원하는 대로 조정할 수 있습니다. 단말기는 안전을 위해 자동으로 재설정되며,로그아웃 후 바로다음번 로그인이 호출될 때보다는

추가 읽기

관련 정보