Ubuntu 22.04에서 시작하는 동안 postgresql 데이터베이스가 준비될 때까지 kea-dhcp4-server를 기다리게 하는 방법은 무엇입니까?

Ubuntu 22.04에서 시작하는 동안 postgresql 데이터베이스가 준비될 때까지 kea-dhcp4-server를 기다리게 하는 방법은 무엇입니까?

내 kea-dhcp4-server는 내 postgresql 데이터베이스에 의존합니다. 다시 시작한 후 DHCP 서버에 다음 오류가 발생합니다.

    sudo systemctl status kea-dhcp4-server
× kea-dhcp4-server.service - Kea IPv4 DHCP daemon
     Loaded: loaded (/lib/systemd/system/kea-dhcp4-server.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/kea-dhcp4-server.service.d
             └─override.conf
     Active: failed (Result: exit-code) since Sun 2024-02-11 17:09:18 UTC; 11min ago
       Docs: man:kea-dhcp4(8)
    Process: 1104 ExecStart=/usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf (code=exited, status=1/FAILURE)
   Main PID: 1104 (code=exited, status=1/FAILURE)
        CPU: 39ms

Feb 11 17:09:18 ns1 systemd[1]: Started Kea IPv4 DHCP daemon.
Feb 11 17:09:18 ns1 kea-dhcp4[1104]: 2024-02-11 17:09:18.166 ERROR [kea-dhcp4.dhcp4/1104.140666424032896] DHCP4_CONFIG_LOAD_FAIL configuration error using file: /etc/kea/kea-dhcp4.conf, reason: Unable to open database: connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection>
Feb 11 17:09:18 ns1 kea-dhcp4[1104]:         Is the server running on that host and accepting TCP/IP connections?
Feb 11 17:09:18 ns1 kea-dhcp4[1104]: 2024-02-11 17:09:18.166 ERROR [kea-dhcp4.dhcp4/1104.140666424032896] DHCP4_INIT_FAIL failed to initialize Kea server: configuration error using file '/etc/kea/kea-dhcp4.conf': Unable to open database: connection to server at "localhost" (127.0.0.1), port 5432>
Feb 11 17:09:18 ns1 kea-dhcp4[1104]:         Is the server running on that host and accepting TCP/IP connections?
Feb 11 17:09:18 ns1 systemd[1]: kea-dhcp4-server.service: Main process exited, code=exited, status=1/FAILURE
Feb 11 17:09:18 ns1 systemd[1]: kea-dhcp4-server.service: Failed with result 'exit-code'.

따라서 Postgresql 데이터베이스가 나중에 시작되거나 아직 준비되지 않은 것 같습니다. 참고: 이 kea-dhcp4-sever 서비스를 수동으로 시작하면 모든 것이 잘 작동합니다.

kea-dhcp4-server.service를 편집할 때 다음을 사용하여 다양한 옵션을 시도했습니다.

sudo systemctl edit kea-dhcp4-server

Wants=, After= 및 Requires=로 시도했지만 모두 성공하지 못했습니다.

어쩌면 Postgres <== 네트워크 ==> Dhcp 서버 사이의 순환 종속성도 있을까요?

제 질문은: Ubuntu 22.04에서 시작하는 동안 postgresql 데이터베이스가 준비될 때까지 kea-dhcp4-server를 기다리게 하려면 어떻게 해야 합니까?

답변1

내 질문에 대답하려면 다음을 수행하십시오.

아마도 kea-dhcp4-server.service의 override.conf에 너무 많은 내용을 입력한 것 같습니다. 이것을 시도하면 부팅 순서가 정확해지고 작동합니다.

more /etc/systemd/system/kea-dhcp4-server.service.d/override.conf
[Unit]
Requires=postgresql.service
After=postgresql.service

관련 정보