Ubuntu 20.04环境PostgreSQL14执行pg_ctl命令无响应问题求助
问题原因
pg_ctl 是PostgreSQL提供的操作系统层级命令行工具,不能直接作为SQL语句在psql交互终端中执行。你在postgres=#提示符下输入pg_ctl status后,psql将其识别为未完成的SQL语句,等待你输入语句结束符;,所以会出现无返回的假死状态。
解决方法
方法1:回到shell终端执行
- 先按
Ctrl+C中断psql当前的输入等待 - 输入
\q回车退出psql,回到postgres用户的shell终端(提示符为postgres@GuyLinux:~$) - 直接输入命令执行即可:
pg_ctl status
方法2:在psql内调用系统命令
无需退出psql,直接在postgres=#提示符下输入带元命令前缀的语句即可:
\! pg_ctl status
补充说明
- 如果执行时提示
pg_ctl: command not found,说明环境变量未配置二进制路径,你安装的PostgreSQL 14对应绝对路径调用命令为:/usr/lib/postgresql/14/bin/pg_ctl status - Ubuntu系统默认使用systemd管理PostgreSQL服务,也可以用以下命令查看服务状态,更符合系统操作习惯:
sudo systemctl status postgresql
内容的提问来源于stack exchange,提问作者Milanor
相关产品推荐
相关产品推荐

