LinuxではLinuxを構成する各種サービス(プロセス)の起動管理にinitシステムを利用していました。必要なファイル(サービスユニットファイル)がインストールされます(インストールされないミドルウェアもありますが)。サービスユニットが登録されます。ゼロからサービスユニットファイルを作成することにしました(今回はあえてそうしました)。通常はデフォルトのサービスユニットファイルを編集して使えば問題ありません。お勉強が目的となっています。デフォルトで登録されているpostgresql-9.6.serviceは初期状態で自動起動がオンとなっているため、自動起動をオフに変更しておきます。9.6.3の環境を利用してSystemdの動作を確認しました。PostgreSQLのコミュニティサイトからダウンロードしたrpmを元にインストール済みの状態から始めます。参考までに、サーバのスペックは以下のとおりです。日本また、セットアップ済みのPostgreSQLの主な設定は以下の通りです。設定デフォルトのサービスユニットの自動起動をオフにするPostgreSQLのデフォルトのサービスユニットの自動起動をオフにします。/etc/systemd/system/multi-user.target.wants/postgresql-9.6.service.サービスユニットファイルの作成PostgreSQLのサービスユニットファイルを新規に作成します。起動する対象のデータベースクラスタ($PGDATA)は環境設定ファイルから読み込む形にします。$PGDATA[Install]WantedBy=multi-user.targetSystemdで参照する環境設定ファイルの作成PostgreSQL用のサービスユニットファイルから参照される環境設定ファイルを作成します。いう名前の環境設定ファイルを作成します。この設定ファイル内ではSystemdから起動する対象のデータベースクラスタ(ディレクトリ)を設定します。必要な設定ファイルがを作成したので、Systemdからサービスユニットが認識されているか確認します。以下のようにサービスの状態が表示されたら一旦は成功です。full.SystemdからPostgreSQLの起動SystemdからPostgreSQLを起動します。コマンドを利用します。表示されたら成功です。続いてLinux起動時にPostgreSQLを自動起動するよう設定します。ようにenabledと表示されたら成功です。起動が成功したので停止も確認します。表示されたら成功です。server.SystemdからPostgreSQLの設定の再読み込み最後に設定の再読み込み(リロード)を確認します。上の手順でPostgreSQLを停止したので、先に起動したうえで設定の再読み込みを行います。PostgreSQLが停止した状態で再読み込みを実行しても失敗します。表示されたら成功とします。サービスユニットファイルを編集した場合サービスユニットファイルを作成してSystemdから起動しようとしたけど失敗した・・・。ファイルを編集して再度起動を試みる・・・、という繰り返しは何度か発生するものだと思います。ここで、ファイルを編集したあとはSystemdにサービスユニットファイルが変更されたことを通知する必要があります。その時に実行するのが以下のコマンドです。サービスユニットファイルの編集後に実行するのをお忘れなく。(2)プロフィールらのっち@ranocci損害保険会社のIT企画部に勤務するSEです。