PostGres가 시작된 후 서비스를 시작하는 방법은 무엇입니까?

PostGres가 시작된 후 서비스를 시작하는 방법은 무엇입니까?

CentOS 7을 사용하고 있습니다. 서비스로 실행하려는 nodeJS 서버가 있지만 PostGres 9.6 서버가 시작된 후에 서비스가 시작되기를 원합니다. 서비스 설명(/usr/lib/systemd/system/nodesrv.service)에 이를 지정해 본 후...

[Unit]
Description=NodeService nodejs server

[Service]
User=rails
Group=rails
ExecStart=/home/rails/myrailssite_production/NodeService/start.sh
ExecStop=/home/rails/myrailssite_production/NodeService/stop.sh
Type=forking
RemainAfterExit=yes
After=postgresql-9.6.service

[Install]
WantedBy=multi-user.target

그러나 위 서비스의 출력에서 ​​볼 수 있듯이 PostGres를 시작하는 데 여전히 몇 초가 걸리는 것 같습니다.

[rails@server ~]$ sudo journalctl -u nodesrv
[sudo] password for rails: 
-- Logs begin at Mon 2018-06-11 11:08:17 EDT, end at Mon 2018-06-11 11:09:40 EDT. --
Jun 11 11:08:17 server systemd[1]: Starting NodeService nodejs server...
Jun 11 11:08:17 server start.sh[124]: psql: could not connect to server: No such file or directory
Jun 11 11:08:17 server start.sh[124]: Is the server running locally and accepting
Jun 11 11:08:17 server start.sh[124]: connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

PostGres가 실행될 때까지 스크립트를 실행하지 않도록 지정하는 방법이 있습니까? 어떤 경우에는 PostGres가 전혀 시작되지 않을 수도 있으며, 이 경우 서비스를 실행할 수 없다는 것을 알고 있습니다.

답변1

서비스 시작을 트리거할 수 있는 postgre 서비스에서 ExecStartPost를 사용하거나 ExecStart를 실행하기 전에 postre 서비스를 확인할 수 있는 서비스에서 ExecStartPre를 사용할 수 있습니다.

관련 정보