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を実行する前にポストサービスを確認できるサービスでExecStartPreを使用できます。

おすすめ記事