내 장치에서 일부 getty를 비활성화하려면 /dev/ttyAMA0
. 이것은 훌륭하게 작동합니다. 그래서 getty를 활성화했습니다. 효과도 매우 좋습니다.systemctl mask [email protected]
ttyUSB1
systemctl enable [email protected]
[email protected]
그래서 제 질문은: a 와 a 사이에 차이가 있나요 [email protected]
?
답변1
두 단위(또는 단위 템플릿) 간의 차이점을 보려면 파일 간의 차이점을 살펴보세요.[이메일 보호됨]그리고[이메일 보호됨], /lib/systemd/system
시스템에서 찾을 수 있습니다.
(여기에 링크된 파일들은 글 작성 당시 최신 버전인 systemd v239에 있는 파일들을 가리킨다. 이 파일들에는 m4 매크로가 포함되어 있어서 설치 전에 처리를 했는데, 이는 m4 처리로 인해 도입된 사소한 변화이므로 그들은 충분히 가깝습니다.)
약간의 차이가 있지만 가장 큰 차이점은 ExecStart=
각 유닛이 호출하는 명령입니다.
단위[이메일 보호됨]다음 명령을 호출하십시오.
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
하지만[이메일 보호됨]다음 명령을 호출하십시오.
ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
이 명령은 다음 용도로 사용됩니다.[이메일 보호됨]agetty
매개변수를 전달하여 --keep-baud
직렬 포트 속도를 구성합니다. 어떤 면에서는,[이메일 보호됨]직렬 포트에서는 작동하지만 직렬 포트를 올바르게 구성하지 않아 제대로 작동하지 않거나 올바르게 구성했을 때보다 속도가 느려질 수 있습니다.
반면에,[이메일 보호됨]agetty
사용자가 로그아웃한 후 콘솔 화면이 지워지지 않도록 인수를 전달합니다 --noclear
(일반적으로 최소 tty0에서 구성됨).
유닛 파일과의 추가 차이점:
- [이메일 보호됨]udev 장치를 직렬 포트( )에 바인딩하므로 해당 장치가
BindsTo=dev-%i.device
이동식 장치(예: USB)인 경우 장치를 제거하거나 플러그를 뽑을 때 systemd가 getty를 중지합니다. - [이메일 보호됨]tty0이 있는지 확인하여(
ConditionPathExists=/dev/tty0
) 커널에서 로컬 콘솔 지원이 비활성화된 경우 로컬 콘솔을 생성하지 않습니다. - [이메일 보호됨]
UnsetEnvironment=LANG LANGUAGE LC_...
지역화는 종종 로컬 콘솔에서 지원되지 않거나 제대로 지원되지 않기 때문에 로케일 변수( )를 설정하지 않습니다 .
ttyAMA0을 차단하고 ttyUSB1을 활성화하는 특정 사례와 관련하여 ttyUSB1은 직렬 포트(적어도 하나를 에뮬레이트함)이므로 다음을 사용하십시오.[이메일 보호됨]더 적절할 것입니다.
하지만, getty@ 활성화 또는[이메일 보호됨]@ttyAMA0을 차단하는 것은 이를 달성하는 최선의 방법이 아닙니다.
systemd는 커널, 일반적으로 console=
커널 명령줄의 인수에서 콘솔 구성을 가져옵니다(이 작업은 다음을 통해 수행됩니다).systemd-getty-generator이므로 자세한 내용은 해당 설명서를 참조하세요. ) 따라서 해야 할 일은 커널 명령줄에서 콘솔을 구성하는 것뿐입니다( console=ttyUSB1
예를 들어 로컬 콘솔도 포함할 수도 있지만 와 같은 매개변수 사용 tty0
). 그러면 systemd가 올바른 작업을 수행합니다.
보세요systemd의 직렬 콘솔 지원에 대한 이 블로그 게시물자세한 내용은.