저는 Wordpress 또는 PrestaShop과 같은 일부 웹 애플리케이션을 관리하기 위한 CentOS 배포판과 Apache 인스턴스를 갖춘 클라우드 서버를 보유하고 있습니다.
로그 파일()에 오류가 보고된 것을 확인했습니다 var/log/
.
- 특히나
messages
:May 30 11:54:41 xxx00962 systemd: Starting Serial Getty on ttyS0... May 30 11:54:41 xxx00962 systemd: Started Serial Getty on ttyS0. May 30 11:54:51 xxx00962 systemd: [email protected] holdoff time over, scheduling restart. May 30 11:54:51 xxx00962 systemd: Stopping Serial Getty on ttyS0...
- 그리고
secure
:May 30 15:51:30 xxx00962 agetty[24693]: /dev/ttyS0: not a character device
xxx00962
(익명) 호스트 이름은 어디에 있습니까?
무슨 소용이 있는지는 모르겠지만 getty
이 문제를 해결하고 싶습니다.
누군가 나를 도와주고 getty
이것이 어떻게 작동하는지 설명해 줄 수 있습니까?
답변1
getty
가장 오래된 유닉스 프로그램 중 하나입니다. 당신은 Wietse Venema가 약 20세 agetty
때 작성한 유사한 프로그램을 사용하고 있습니다 .getty
이 프로그램이 실행되는 이유는 시스템에서 문자 장치 파일 이름을 가진 직렬 장치에 연결된 터미널이 있다고 생각하기 때문입니다 /dev/ttyS0
. 시스템이 부팅되면 커널 명령줄에서 a 뒤에 나열되기 때문에 이름이 지정된 프로그램이 systemd-getty-generator
표시됩니다 . 생성기는 템플릿 서비스 단위를 인스턴스화합니다 . 서비스 활성화 시도가 기록됩니다.ttyS0
/sys/class/tty/console/active
console=
[email protected]
[email protected]
이 서비스는 장치를 통한 터미널 로그인을 제공합니다.
어떤 이유로(2014년 또는 최신 버전의 systemd를 사용한다고 가정할 때) 시스템이 일관성이 없습니다.지금/dev/ttyS0
그렇다고 믿어아니요캐릭터 장치 파일,언급 할 필요없는터미널로서의 문자 장치. systemd-getty-generator
부트로더에 있다고 생각하세요. 이를 변경하는 방법에는 적어도 두 가지가 있습니다. 귀하의 질문에 따라 어떤 시나리오가 발생하는지 판단하는 것은 불가능합니다.
그것을 고치도록 하세요 /dev/ttyS0
.
- 문자 장치여야 하는데 그렇지 않은 경우 런타임 시 무엇이 변경되었는지 알아보세요.
- 문자 장치가 아닌 경우
systemd-getty-generator
검사할 때 부트로더에서 터미널 장치인 이유를 알아보세요. 또한 명령줄에서 커널에게 콘솔임을 알려주지 마십시오. 직렬 포트가 없기 때문에(터미널이 연결되어 있든 없든) 문자 장치가 아니어야 한다면 존재하지 않는 직렬 포트가 콘솔이라고 커널에 알리는 것은 완전히 잘못된 것입니다. - 터미널인 문자 장치여야 하는데 해당 터미널에서 로그인할 수 없도록 하고 싶다면 명령줄에서 커널에 콘솔이라고 알리는 것을 중지하세요.
- 문자 장치(예: 터미널)여야 하는데 커널 콘솔이기를 원하지만아직이 터미널(또는 실제로 다른 비가상 터미널 콘솔)에서 로그인할 수 없도록 하려면
systemd-getty-generator
기본 기능이 원하는 기능이 아니기 때문에 비활성화하십시오.
추가 읽기
- https://unix.stackexchange.com/a/316279/5132
- 레나트 페틀링(2013-10-07).
systemd-getty-generator
. 시스템 매뉴얼 페이지. freedesktop.org. - 레나트 페틀링(2014-02-24).getty-generator: 사용하기 전에 tty를 검증하세요. 시스템 d. GitHub.
- 베르너 핑크(Werner Fink)와 카렐 주커(Karel Zucker).
agetty
. 우분투 15.04 매뉴얼 페이지. - Linux에서 ttys0, ttyUSB0 및 ttyAMA0의 차이점은 무엇입니까?
- Unix 기본 TTY 번호는 무엇입니까?
- https://unix.stackexchange.com/a/248313/5132
답변2
모든 Unix 시스템에서 getty
이는 직렬 포트 연결(하드와이어 터미널 또는 모뎀 회선)에 로그인 프롬프트를 표시하고 사용자가 로그인할 때까지 기다리는 프로세스의 전통적인 이름입니다.
최신(물리적) 시스템에서는 getty
텍스트 모드 가상 콘솔에서 로그인 프롬프트를 제공하는 프로세스를 찾는 것이 일반적입니다. 시스템에 원격 콘솔 액세스 하드웨어(예: HP iLO, Sun/Oracle ILOM, Fujitsu IRMC 또는 Oracle iDRAC)가 있는 경우 일반적으로 원격 콘솔 인터페이스를 통해 SSH 연결을 설정하여 액세스할 수 있는 가상 직렬 포트를 제공합니다. 시스템 관리자는 getty
해당 시리얼 포트에 대한 프로세스를 설정하면 됩니다.
이는 일반적으로 Java 또는 HTML5를 사용하는 웹 기반 원격 콘솔 인터페이스를 사용하는 것보다 훨씬 더 안정적입니다. 가상 직렬 포트는 PC 키보드를 에뮬레이트할 필요가 없으므로 수신 문자를 다시 키보드 스캔 코드로 역 매핑할 필요가 없습니다. 실제 구성된 키보드 레이아웃은 역방향 매핑 작업에 사용되는 키보드 레이아웃과 일치합니다. 출력 측면에서는 표시 가능한 이미지를 얻기 위해 비디오 RAM을 확보하려고 시도할 필요가 없습니다.
가상 머신에서 가상 직렬 포트는 거의 동일한 방식과 동일한 이유로 사용될 수 있습니다. 즉, 가상 직렬 포트 연결에는 "가상 KVM"보다 데이터 변환이 덜 필요합니다.
특정 경우에 클라우드 VM OS는 분명히 가상 직렬 포트를 예상하도록 구성되어 있지만 /dev/ttyS0
가상 직렬 포트가 현재 VM에 존재하지 않는 것 같습니다. 어쩌면 클라우드 인프라가 가상 머신 초기화 중에 이를 사용할 수도 있을까요?
지금은 유용한 작업을 수행하지 않는 것 같으므로 getty
해당 프로세스를 닫을 수 있습니다 . /dev/ttyS0
이를 위해 다음 명령이 아마도 가장 간단한 솔루션일 것입니다.
systemctl stop [email protected]
systemctl disable [email protected]
첫 번째 명령은 systemd
다음 재부팅까지 프로세스 시작 시도를 중지하도록 지시하고 두 번째 명령은 해당 프로세스를 영구적으로 비활성화된 것으로 표시합니다.
두 번째 명령을 사용하여 첫 번째 명령을 실행 취소하기 전에 시스템을 재부팅하십시오. 따라서 확실하지 않은 경우 첫 번째 명령을 사용하고 며칠 동안 기다려 문제가 발생하는지 확인할 수 있습니다. 이제 가상 머신에 액세스할 수 없는 경우 재부팅하면 모든 것이 원래 상태로 복원됩니다.
~처럼JdeBP의 답변에서, 시작 옵션도 확인해야 합니다. console=ttyS0
여기에 나열되어 있으면 프로세스가 자동으로 에서 생성 systemd
됩니다 .getty
/dev/ttyS0
답변3
/etc/systemd/journald.conf
편집 및 설정을 통해 이 문제를 해결했습니다 .
MaxLevelSyslog=warning