ホストに外部ネットワークがないと、仮想マシンでsshdを起動できない奇妙な状況が発生します。私が使用している開発Linuxイメージ(奇妙な現象だとは思わないでください。アーチ、Ubuntu、Debian、Gentoo、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 '...'