【问题标题】:Running sqlplus in background in Unix在 Unix 后台运行 sqlplus
【发布时间】:2014-12-04 23:36:05
【问题描述】:

我正在尝试在 Unix 环境中从 sqlplus 运行 .sql 文件作为后台进程。

我正在使用 Tectia 或 Putty 连接到 Unix,我希望 sqlplus 即使我的终端关闭也能继续在后台运行。

此命令有效

$ sqlplus USERNAME/password@SCHEMA
SQL>@test.sql
SQL> quit

但是当试图在后台启动它时它失败了

$ sqlplus USERNAME/password@SCHEMA&
SQL>@test.sql
SQL> quit

什么是正确的命令/脚本?

【问题讨论】:

    标签: sql linux database unix sqlplus


    【解决方案1】:

    & 会将其置于后台

    但如果你真的想关闭你的终端并离开一天

    你需要使用nohup

    nohup sqlplus USERNAME/password@DBNAME @test.sql &
    

    【讨论】:

    • 这看起来是个不错的解决方案。请仔细检查当您运行相同的命令时(没有 NOHUP 和 &)运行 没有任何用户输入。理想情况下,SQL 脚本或您提供给 NOHUP 的命令应该自行终止。我说的原因很容易让你的 SQLPLUS 会话挂起,因为 SQL 脚本没有任何EXIT,或者在 NOHUP 之后指定的命令也没有。我会将任何命令放入脚本中,然后调用NOHUP myscript &,但这是您自己检查的事情。例如,您有一个密码,该操作系统上的任何用户都可以通过PS -EF 看到该密码。
    【解决方案2】:

    在 SQLPlus 命令行中传递脚本名称:

    sqlplus USERNAME/password@SCHEMA @test.sql &
    

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 2017-07-09
      • 2019-12-14
      • 2021-08-11
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多