매우 기본적인 질문이라면 죄송합니다.
linux/systemd/agetty는 이중 종료 직렬 getty 콘솔을 지원합니까?
예를 들어, 두 개의 원격 서버 A와 B가 있고 systemd, agetty 및 screen이 설치된 최신 우분투를 실행하고 있습니다. 널 모뎀 케이블은 서버 사이에 설치되어 있으며 두 서버 모두의 /dev/ttyS0에 나타납니다.
서버 BI에서는 screen을 사용하여 서버 A의 로그인 프롬프트(agetty)를 가져올 수 있습니다.
해당 프롬프트에서 서버 A를 재부팅할 수 있고, grub이 나타나고, grub에서 선택하고 Linux를 부팅할 수 있습니다. 부팅 메시지가 표시된 다음 B의 직렬 링크를 통해 성공적인 로그인 프롬프트가 표시됩니다.
동일한 직렬 포트/링크를 사용하여 반대 작업을 수행할 수 있습니까? 동일한 /dev/ttyS0을 통해 A에서 서버 B에 로그인하기 위해 screen을 사용할 수 있습니까? 화면이 사용하지 않을 때 서버 B에서 agetty가 /dev/ttyS0을 수신하도록 할 수 있습니까?
그렇지 않은 경우 A -> B에서 이동하려면 두 번째 직렬 포트/케이블이 필요합니다. 이것이 UART의 하드웨어 제한입니까, 아니면 agetty 또는 systemd의 소프트웨어 제한입니까? 시스템 문제인 경우 시스템이 아닌 Linux(예: Gentoo)에서도 이것이 가능합니까?
미리 감사드립니다.
답변1
직렬 회선을 통해 양방향 통신이 가능하므로 단일 회선에서 실행되도록 여러 세션을 예약할 수 있습니다. 직렬 회선이 네트워크 연결 역할을 하도록 다중화하려면 PPP와 같은 프로토콜이 필요합니다.
멀티플렉싱 없이 양쪽에서 프롬프트를 인쇄하고 명령 응답(셸 프롬프트 또는 로그인 프롬프트)을 예상하면 어떤 일이 발생할지 생각해 보세요. A측은 명령이 읽혀질 것으로 예상하여 프롬프트를 인쇄하고, A측은 B측의 프롬프트를 읽고 이를 명령으로 처리합니다. 그건 작동하지 않습니다.
최소한 어느 당사자가 회의의 호스트가 되어야 하는지 합의하기 위한 몇 가지 조치를 취해야 합니다. 예를 들어, 양 당사자를 모두 수동 모드로 시작하고 상대방이 세션을 요청하는 명령을 보낼 때까지 기다립니다. 그런 다음 호스트에서 로그인 프로세스를 시작하고 클라이언트에서 터미널 클라이언트를 시작합니다. 훈련 후에는 중립으로 돌아가 새로운 훈련을 준비합니다(어느 방향이든).