Как я могу запустить сервис после загрузки 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 вообще не загружается, и в этом случае я не справляюсь с запуском сервиса.

Вы можете использовать ExecStartPost в вашем сервисе postgre, который может инициировать запуск вашего сервиса, или вы можете использовать ExecStartPre в вашем сервисе, который может проверять сервис postre до того, как он выполнит ExecStart