在 Ubuntu 上将 PostGreSQL 配置为服务的问题

在 Ubuntu 上将 PostGreSQL 配置为服务的问题

我正在努力处理 PostGreSQL,但无法将其作为服务启动

我的配置如下:

[Unit]
Description=PostgreSQL RDBMS
Documentation=https://www.postgresql.org/docs/
After=network.target

[Service]
Type=simple
User=postgres
ExecStart=/usr/lib/postgresql/13/bin/postgres "-D" "/var/lib/postgresql/13/main" "-c" "config_file=/etc/postgresql/13/main/postgresql.conf"
#ExecStart=/bin/true


[Install]
WantedBy=multi-user.target

然后尝试启动服务:

ubuntu@my-server:~$ service postgresql status
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2023-08-25 05:33:53 UTC; 9min ago
       Docs: https://www.postgresql.org/docs/
    Process: 44461 ExecStart=/usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main -c config_file=/etc/postgresql/13/main/postgresql.conf (code=exited, status=1/FAILURE)
   Main PID: 44461 (code=exited, status=1/FAILURE)

Aug 25 05:33:53 my-server systemd[1]: Started PostgreSQL RDBMS.
Aug 25 05:33:53 my-server postgres[44461]: 2023-08-25 05:33:53.797 UTC [44461] FATAL:  lock file "postmaster.pid" already exists
Aug 25 05:33:53 my-server postgres[44461]: 2023-08-25 05:33:53.797 UTC [44461] HINT:  Is another postmaster (PID 43831) running in data directory "/var/lib/postgresql/13/main"?
Aug 25 05:33:53 my-server systemd[1]: postgresql.service: Main process exited, code=exited, status=1/FAILURE
Aug 25 05:33:53 my-server systemd[1]: postgresql.service: Failed with result 'exit-code'.

我猜出了一些问题

ubuntu@my-server:~$ sudo kill 43831
kill: (43831): No such process
ubuntu@my-server:~$ sudo service postgresql stop
ubuntu@my-server:~$ sudo service postgresql start

然后再

ubuntu@my-server:~$ service postgresql status
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2023-08-25 05:45:42 UTC; 2s ago
       Docs: https://www.postgresql.org/docs/
    Process: 45126 ExecStart=/usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main -c config_file=/etc/postgresql/13/main/postgresql.conf (code=exited, status=1/FAILURE)
   Main PID: 45126 (code=exited, status=1/FAILURE)

Aug 25 05:45:42 my-server systemd[1]: Started PostgreSQL RDBMS.
Aug 25 05:45:42 my-server postgres[45126]: 2023-08-25 05:45:42.514 UTC [45126] FATAL:  lock file "postmaster.pid" already exists
Aug 25 05:45:42 my-server postgres[45126]: 2023-08-25 05:45:42.514 UTC [45126] HINT:  Is another postmaster (PID 45108) running in data directory "/var/lib/postgresql/13/main"?
Aug 25 05:45:42 my-server systemd[1]: postgresql.service: Main process exited, code=exited, status=1/FAILURE
Aug 25 05:45:42 my-server systemd[1]: postgresql.service: Failed with result 'exit-code'.

我究竟做错了什么?

尝试在 Ubuntu 20 上运行它

非常感谢你的帮助

相关内容