从 PostgreSQL 中的命令行实用程序退出

Bilal Shahid 2023年1月30日
  1. 使用 \q 命令从 PostgreSQL 的命令行实用程序中终止脚本
  2. 使用 exit 从 PostgreSQL 的命令行实用程序中退出
  3. CTRL+C 退出 PostgreSQL 的命令行实用程序
  4. Ctrl+Z 从 PostgreSQL 的命令行实用程序暂停
  5. 在 Bash、Linux 和 Unix 中按 Ctrl+D 终止 Shell 进程
  6. Ctrl+Z终止 Shell 进程
  7. Ctrl+</kbd> 退出 PostgreSQL 会话
  8. 在 PostgreSQL 中使用 \!终止进程的命令
  9. 结论
从 PostgreSQL 中的命令行实用程序退出

PSQL 是 PostgreSQL 数据库服务器的基于终端的前端。它使用来自输入的文件或命令行参数,并且可移植且易于使用。

它还有助于编写脚本并让其他任务或会话在系统后台正确运行,而无需用户担心细节。

今天,我们将学习如何退出 PSQL 命令行实用程序。

使用 \q 命令从 PostgreSQL 的命令行实用程序中终止脚本

如果你还没有,请使用以下语句从命令提示符登录到你的 PSQL。

psql -u postgres

输入用户名并继续。要退出打开的会话,请键入以下任何内容。

\q

或者

\quit

PostgreSQL 文档在 PSQL Options 部分下定义了这些。但是,这只会终止脚本文件中的特定脚本。

脚本文件是为从 PSQL 终端内部运行的查询编写的 .SQL 文件。因此,如果你倾向于运行它并调用 \q 命令,它将终止正在运行的文件,而不是我们的 PSQL 会话。

使用 exit 从 PostgreSQL 的命令行实用程序中退出

PSQL 对程序员来说越来越容易运行。如果你键入 exit 并在命令行中运行它,你将获得以下信息:

输出:

Run the \q command or \quit to exit

在较新版本的 PSQL 中,继续并键入 exit 以退出当前 PSQL 会话并返回到正常实用程序。

你可以使用此命令检查如何退出 PSQL 会话。

\?

PSQL 中有一种称为单用户后端模式的东西。SINGLE USER 具有 SUPER USER 权限,并且主要在需要灾难恢复时调用此 shell,并且 PostgreSQL 服务器以某种方式崩溃或遇到故障。

在这种情况下,你可能无法运行 \q 命令。

CTRL+C 退出 PostgreSQL 的命令行实用程序

我们可以用来退出当前 PSQL 会话的另一种方法是同时按 CTRL+C

CTRL+C 是一个快捷方式,用于从启动的 shell 向后台运行的进程发送 INTERRUPT 信号。它通过终端发送一个 SIGINT 信号来告诉进程快速终止。

当你按下这些键时,PSQL 实用程序将自动发出 \q 命令并终止 PostgreSQL 会话。

Ctrl+Z 从 PostgreSQL 的命令行实用程序暂停

你可以用来暂停进程运行的另一个重要命令是组合Ctrl+Z键,然后按 Enter

此命令将向进程发出 SIGTSTP 信号,这将暂停在后台运行的进程并将用户返回到 shell。

此命令不会终止进程,而是暂停它。尽管运行到 shell,但一旦打开并启动,该进程仍将在系统后台继续运行和工作。

在 Bash、Linux 和 Unix 中按 Ctrl+D 终止 Shell 进程

现在,使用这种组合键可能无法在 PSQL shell 中工作。但是,你仍然可以尝试在 Bash、Linux 或 Unix 中退出 PostgreSQL shell。

这是如何运作的?END OF FILE (EOF) 的默认值为^D,通过在 shell 中按 Ctrl+D 输入。

它是终端接口的设备驱动程序提供给 shell 内核的一个特殊的内部控制字符。所以一旦你告诉 shell 输入必须停止,它就会自动终止。

Ctrl+Z终止 Shell 进程

这个命令是如何工作的? Ctrl+Z 向 shell 发送 TSTP 信号。

信号是软件中断,用于用户和进程之间的通信。TSTP 信号是 SIGTSTP 的缩写形式,即操作的 SUSPEND 信号。

它可以注册一个信号处理程序或忽略一个信号。如果进程被挂起,你可以稍后在返回 shell 后使用以下命令杀死所有进程。

kill -l

Ctrl+</kbd> 退出 PostgreSQL 会话

再一次,一些 PSQL 用户可能无法使用此命令,尤其是那些在 Windows 上的用户。但是,它可能对 Linux 或 Bash 用户和其他平台有效。

这个命令通过发送一个 SIGQUIT 信号来工作,这意味着退出,从它的名字可以看出。它会导致进程立即被杀死并转储到核心。

核心转储在终止时自动生成。

在 PostgreSQL 中使用 \!终止进程的命令

这是 PSQL 元命令文档下的另一个方便的命令。要在 Postgres 会话中使用它,请输入以下内容。

\!

然后按 Enter 退出。

如果你不为此命令提供参数,它将自动返回到子 shell。输入的行的其余部分将被传递到将退出的子 shell。

结论

如果上述任何Ctrl+Letter 选项不起作用,请尝试在这些命令中间附加一个 Shift。你可以尝试以下方法。

CTRL + SHIFT + D \ CTRL + SHIFT + \

我们希望你深入了解退出 PSQL shell 的不同方法。始终遵循适当的文档以了解执行程序的正确方法,并遵循我们的教程以便在出现异常时更好地理解。

你可以稍后使用此信息为你带来好处,并以你喜欢的方式实施它。

尽管各种命令执行类似的功能,但它们具有不同的操作方法。该方法是否适合你或你的系统最好完全取决于你!

因此,请确保你通读此内容并根据需要实施解决方案。

作者: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub