背景: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番目のオプションです。