시작 시 디스크가 비워질 때까지 일부 데몬의 시작을 지연합니다.

시작 시 디스크가 비워질 때까지 일부 데몬의 시작을 지연합니다.

배경:데비안 테스트/불안정을 실행하고 systemd로 부팅하는 노트북이 있습니다. 일반 노트북 자기 하드 드라이브(SSD 아님)가 있습니다. 머신은 부팅 시 자동으로 로그인하도록 설정되어 있으므로 시스템 부팅에서 바로 데스크탑으로 로드됩니다. 이것은 KDE 5이며 정확히 가볍지는 않습니다.

데스크톱을 더 빨리 사용할 수 있도록 데스크톱이 완전히 로드된 후에만 일부 데몬이 시작되도록 설정하고 싶습니다(예: PostgreSQL, exim, apache 등). "데스크톱 가득 참"은 매우 쉽게 감지할 수 있습니다. 즉, 디스크가 비어 있습니다.

질문:데스크탑이 완전히 부팅된 후에만 시스템 데몬을 시작하는 일부 시스템 기능이 있습니까? 문서를 살펴보니 그 이후에는 아무 것도 없는 것 같습니다 graphical.target. systemd의 모든 기능을 갖추고 있기 때문에 뭔가 빠진 것 같습니다.

마음에 떠오른 몇 가지 사항:

  • PostgreSQL은 적어도 소켓 활성화를 지원하지 않으므로 이는 옵션이 아닙니다.
  • 서비스가 있지만 시작될 Type=idle때까지 기다릴 수도 있지만 데스크톱이 로드될 때까지는 기다릴 수 없는 것 같습니다 .sddm
  • 10초마다 디스크 활동을 확인하는 필수 서비스를 작성하고 graphical.target, 없는 경우 systemctl을 사용하여 하나 local-idle.target또는 유사한 서비스(이후 존재함)를 시작합니다. 이 상황을 피하십시오.

답변1

우선 다음과 같은 것들이 있습니다.그런 이벤트는 없어"데스크톱이 완전히 시작되었습니다"이기 때문입니다. 일반적인 방법으로는 이 상황을 감지할 수 있는 방법이 없습니다.

공식적으로 어떻게 정의하시겠습니까? DE의 자체 자동 시작 메커니즘( /etc/xdg/autostart~/.config/autostart)은 systemd에 의해 제어되지 않습니다. DE가 시작을 완료했는지 알 수 없습니다.

또한 디스크가 유휴 상태로 있을 수 없습니다. 서둘러 시스템을 부팅하고 즉시 어떤 작업을 시작한다면 어떻게 될까요?

그러니 무엇을 할지 결정해야 해요"데스크탑 전체 부팅"으로 이해한 다음 이를 감지하고 모든 무거운 작업 서비스를 사용하여 다른 대상을 시작하는 스크립트를 작성하기만 하면 됩니다. 그래서 이것은 실제로 세 번째 옵션입니다.

관련 정보