PostgreSQLが挙動不審になっている

実現したいこと

PostgreSQLを正常に起動させることです。
systemctl status postgresqlのエラーも表示させず、
postgresqlに対するクエリを正常に実行できる状態にしたいです。

発生している問題・分からないこと

psql上でのクエリは正常に実行できるにも関わらず、
systemctl status postgresql.serviceはエラーになっているという
出力を返すようになっています。非常に不思議な現象です。

エラーメッセージ

error

1user@servername:~$ systemctl status postgresql.service 2× postgresql.service - PostgreSQL RDBMS 3 Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) 4 Active: failed (Result: exit-code) since Wed 2024-02-07 05:33:57 UTC; 6s ago 5 Process: 2406 ExecStart=/bin/sh -c sudo -u postgres /usr/lib/postgresql/16/bin/postgres -D /xxx/postgresql/16/main -c config_file=/etc/postgresql/16/main/postgresql.conf (code=exited, status=1/FAILURE) 6 Main PID: 2406 (code=exited, status=1/FAILURE) 7 CPU: 22ms 8 9Feb 07 05:33:57 servername systemd[1]: Starting PostgreSQL RDBMS... 10Feb 07 05:33:57 servername sudo[2407]: root : PWD=/ ; USER=postgres ; COMMAND=/usr/lib/postgresql/16/bin/postgres -D /xxx/postgresql/16/main -c config_file=/etc/postgresql/16/main/postgresql.conf 11Feb 07 05:33:57 servername sudo[2407]: pam_unix(sudo:session): session opened for user postgres(uid=114) by (uid=0) 12Feb 07 05:33:57 servername sh[2408]: 2024-02-07 05:33:57.981 UTC [2408] FATAL: lock file "postmaster.pid" already exists 13Feb 07 05:33:57 servername sh[2408]: 2024-02-07 05:33:57.981 UTC [2408] HINT: Is another postmaster (PID 2389) running in data directory "/xxx/postgresql/16/main"? 14Feb 07 05:33:57 servername sudo[2407]: pam_unix(sudo:session): session closed for user postgres 15Feb 07 05:33:57 servername systemd[1]: postgresql.service: Main process exited, code=exited, status=1/FAILURE 16Feb 07 05:33:57 servername systemd[1]: postgresql.service: Failed with result 'exit-code'. 17Feb 07 05:33:57 servername systemd[1]: Failed to start PostgreSQL RDBMS.

該当のソースコード

psql

1user@servername:~$ sudo -u postgres psql 2psql (16.1 (Ubuntu 16.1-1.pgdg22.04+1)) 3Type "help" for help. 4 5postgres=# \dt 6Did not find any relations. 7postgres=# SELECT version(); 8 version 9----------------------------------------------------------------------------------------------------------------------------------- 10 PostgreSQL 16.1 (Ubuntu 16.1-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit 11(1 row) 12 13postgres=# \l 14 List of databases 15 Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges 16-----------+----------+----------+-----------------+-------------+-------------+------------+-----------+----------------------- 17 postgres | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | 18 template0 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + 19 | | | | | | | | postgres=CTc/postgres 20 template1 | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | | =c/postgres + 21 | | | | | | | | postgres=CTc/postgres 22(3 rows) 23 24postgres=# \q 25user@servername:~$ echo $? 260

bash

1user@servername:~$ sudo systemctl list-units --type=service 2 UNIT LOAD ACTIVE SUB DESCRIPTION 3 apache2.service loaded active running The Apache HTTP Server 4 apparmor.service loaded active exited Load AppArmor profiles 5 apport.service loaded active exited LSB: automatic crash report generation 6... 7 lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling 8 lvm2-pvscan@8:3.service loaded active exited LVM event activation on device 8:3 9 ModemManager.service loaded active running Modem Manager 10 multipathd.service loaded active running Device-Mapper Multipath Device Controller 11 networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd 12 plymouth-quit-wait.service loaded active exited Hold until boot process finishes up 13 plymouth-quit.service loaded active exited Terminate Plymouth Boot Screen 14 plymouth-read-write.service loaded active exited Tell Plymouth To Write Out Runtime Data 15 polkit.service loaded active running Authorization Manager 16● postgresql.service loaded failed failed PostgreSQL RDBMS 17 postgresql@16-main.service loaded active running PostgreSQL Cluster 16-main 18 rsyslog.service loaded active running System Logging Service 19 setvtrgb.service loaded active exited Set console scheme 20 snapd.apparmor.service loaded active exited Load AppArmor profiles managed internally by snapd 21 snapd.seeded.service loaded active exited Wait until snapd is fully seeded 22 snapd.service loaded active running Snap Daemon 23 ssh.service loaded active running OpenBSD Secure Shell server 24 systemd-binfmt.service loaded active exited Set Up Additional Binary Formats 25 systemd-fsck@dev-disk-by\x2duuid-041bdcf8\x2d8e0c\x2d4b08\x2d9301\x2de2948d2b15d9.service loaded active exited File System Check on /dev/disk/by-uuid/041bdcf8-8e0c-4b08-9301-e2948d2b15d9 26 systemd-fsck@dev-disk-by\x2duuid-F496\x2d3B15.service loaded active exited File System Check on /dev/disk/by-uuid/F496-3B15 27 systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage 28 systemd-journald.service loaded active running Journal Service 29 systemd-logind.service loaded active running User Login Management 30 systemd-modules-load.service loaded active exited Load Kernel Modules 31 systemd-networkd-wait-online.service loaded active exited Wait for Network to be Configured 32 systemd-networkd.service loaded active running Network Configuration 33 systemd-random-seed.service loaded active exited Load/Save Random Seed 34 systemd-remount-fs.service loaded active exited Remount Root and ... 35 36LOAD = Reflects whether the unit definition was properly loaded.

試したこと・調べたこと

上記の詳細・結果

teratailで検索しても、今回のような奇妙な事例は、見つけることができませんでした。googleでも同様です。


pg_hba.confや、postgresql.confを変更しましたが、変わらずです。ExecStartも色々なものを試しましたがダメでした。


ChatGPTと一日中相談していましたが、解決しませんでした。


補足

Teratailの投稿文字数制限を超えてしまうため、一部コードやエラーメッセージを省略しています。

このエラーメッセージの前に、root権限では実行できません、というmsgがでました。これは
ExecStartを変えたらすぐに解決しました。おそらく、関係ないと思われます。

環境:

  • Ubuntu 22.04 LTS Server
  • PostgreSQL 16.1

どうか回答お願い致します。

コメントを投稿

0 コメント