호스트에 외부 네트워크가 없으면 가상 머신에서 sshd를 시작할 수 없는 이상한 상황이 발생합니다. 내가 사용하고 있는 개발 리눅스 이미지(이상한 현상이라고 생각하지 마세요. 아치, 우분투, 데비안, 젠투, rhel에서도 마찬가지입니다...)에는 실행할 체인을 생성하는 일부 유닛 파일이 있는 것으로 나타났습니다. 종속성 Before=
대신 성공을 기반으로 합니다. 이러한 ed 종속성 에 대해 알려주는 것은 없습니다 .After=
timesyncd
Before
#sshd.service
[service]
After=network.target
#pacman-init.service
Before=sshd.service cloud-final.service archlinux-keyring-wkd-sync.service
After=time-sync.target
ConditionFirstBoot=yes
따라서 첫 번째 부팅 후 ntp 서버에 액세스할 수 없는 호스트로 이 컴퓨터를 부팅할 때마다 systemd는 나에게 가스를 발생시킵니다.
systemctl start sshd
<-아무 일도 일어나지 않았습니다. 실패는 없습니다. 시간 초과가 없습니다. 로그에 아무것도 없습니다! 3시간을 기다려도 무슨 일이 일어났는지 아직도 모르겠습니다.
systemctl list-dependencies sshd
<- 서비스에 영향을 미치는 언급이 없습니다!
systemctl list-dependencies --all sshd
<- all 옵션은 관련 없는 슬라이싱 정보 외에는 아무것도 추가하지 않는 것 같습니다.
그런 다음 온라인으로 전환하면 ntp 업데이트가 완료되고 만족하며 pacman-init.service
더 이상 적용되지 않는지 After=time-sync.target
확인한 후 ConditionFirstBoot=yes
무시 pacman-init
하고 시작합니다 sshd.service
. 한숨을 쉬다.
Before
온라인에 접속하지 않고도 관련 서비스의 속성 에 관련 없는 서비스가 추가 되도록 처리 단위를 파싱하는 문제를 이해하고 After
이해할 수 있어야 합니다.
for u in `systemctl show sshd | grep After= | cut -d= -f2`; do systemctl status $u; done
그건오직pacman-init.service는 종속성이며 내용을 보유하고 있습니다.
그래서 제 질문은 이러한 문제를 해결하는 방법이 아닙니다. 문제는 시스템 운영자로서 이에 대한 정보를 도대체 어떻게 얻을 수 있느냐는 것입니다.
편집하다:
systemd에 대한 또 다른 나쁜 사용자 경험.
시스템이 절전 모드로 전환됩니다. 2076년에 잠에서 돌아오세요!
$ timedatact
Local time: Sun 2076-09-20 11:14:27 UTC
Universal time: Sun 2076-09-20 11:14:27 UTC
RTC time: Fri 2023-05-12 17:39:40
Time zone: UTC
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
좋습니다. RTC 시계가 다음과 같다는 것을 알고 있습니다.분깨어난 순간부터 어떤 이유에서인지 시계를 2076년으로 설정하기로 결정합니다.
rtc에서 시계를 설정하는 명령이 없습니다.
나는 네트워크를 활성화하고 순진하게 시도했지만 restart systemd-timedated
이유에 대한 정보가 전혀 없이 실패했습니다. 심지어 무엇을 하려는지도 아닙니다. 방금 실패했습니다.
무엇을 실행하려고 하는지 살펴보겠습니다. 아, 보세요. 유닛 파일은 바이너리 파일입니다. 아무것도 감사합니다.
이 전체 설정 혼란 속에서 사용할 수 있는 유일한 디버그 명령을 시험해 보겠습니다. (그렇게 중요하지는 않은 것 같죠?)
timedatectl show-timesync -a --monitor
Failed to parse bus message: No such file or directory
어떤 파일인가요? 이유를 알고 싶다면 systemd로 고통받으세요! ... 혹시라도 문서에 언급된 모든 공통 구성 파일이 원시 콘텐츠와 함께 사용 가능하고 읽을 수 있는지 확인했습니다. 같은 오류입니다.
뛰어난 유용성 해결 방법: 하드웨어 시계에서 얻은 날짜를 수동으로 다시 입력하세요! ...더 큰 클럭 왜곡을 피하려면 신속하게 조치를 취하세요. 아니면 단일 스크립트에 더 많은 시간을 낭비할 수도 있습니다.
timedatectl set-time '...'