起動時にディスクが空になるまで、一部のデーモンの起動を遅らせます。

起動時にディスクが空になるまで、一部のデーモンの起動を遅らせます。

背景:Debianテスト/不安定を実行してsystemdで起動するノートブックがあります。一般的なノートパソコンの磁気ハードドライブ(SSDではない)があります。マシンは起動時に自動的にログインするように設定されているため、システム起動からすぐにデスクトップにロードされます。これはKDE 5であり、まさに軽量ではありません。

デスクトップをより速く使用できるように、デスクトップが完全にロードされた後にのみ一部のデーモンが起動するように設定したいと思います(例:PostgreSQL、exim、apacheなど)。 「デスクトップいっぱい」は非常に簡単に検出できます。つまり、ディスクは空です。

質問:デスクトップが完全に起動した後にのみシステムデーモンを起動するいくつかのシステム機能はありますか?文書を見てみると、それ以降は何もないようですgraphical.target。 systemdのすべての機能を備えているので、何かが欠けているようです。

心に浮かぶいくつかのこと:

  • PostgreSQLは少なくともソケットの有効化をサポートしていないので、これはオプションではありません。
  • サービスがありますが、起動するType=idleまで待つことができますが、デスクトップがロードされるまで待つことはできないようです。sddm
  • 10秒ごとにディスクアクティビティを確認する必要なサービスを作成しgraphical.target、存在しない場合はsystemctlを使用して1つlocal-idle.targetまたは類似のサービス(以降存在する)を開始します。この状況を避けてください。

答え1

まず、次のようなものがあります。そのようなイベントはありません。「デスクトップが完全に起動しました」だからです。一般的な方法には、この状況を検出する方法はありません。

正式にどのように定義しますか? DEの自己自動起動メカニズム(/etc/xdg/autostartなど~/.config/autostart)はsystemdによって制御されません。 DEが起動を完了したかどうかは不明です。

また、ディスクがアイドル状態になることはできません。急いでシステムを起動し、すぐにどのような作業を開始したらどうなりますか?

だから何をするかを決める必要があります。あなた「デスクトップ全体の起動」として理解し、それを検出し、すべての重い作業サービスを使用して別のターゲットを起動するスクリプトを作成するだけです。だからこれは実際には3番目のオプションです。

関連情報