【问题标题】:How can place a job of linux terminal to background after enter password?输入密码后如何将linux终端的工作放到后台?
【发布时间】:2015-05-01 22:25:55
【问题描述】:

我在 linux 终端中使用此命令连接到服务器并将其用作代理:

ssh -N -D 7070 root@ip_address

获取密码并连接,一切正常,但我怎样才能将此过程置于后台?

我使用了 CTRL+Z 但它停止不将此进程置于后台...

【问题讨论】:

    标签: linux shell terminal


    【解决方案1】:

    CTRL-Z 正在做它应该做的事情,即停止进程。如果你想把它放在后台,执行此操作的 shell 命令是 bg:

    $ ssh -N -D 7070 -l user 192.168.1.51
    user@192.168.1.51's password: 
    ^Z
    [1]+  Stopped                 ssh -N -D 7070 -l mjfraioli 192.168.1.51
    $ bg
    [1]+ ssh -N -D 7070 -l user 192.168.1.51 &
    

    这样您就可以交互式地输入密码,并且只有在完成后,将其停止并将其置于后台。

    【讨论】:

    • 感谢您的回答,是的,您说得对,但我需要一种不停止在后台的方法,您知道一种在后台运行进程的方法吗?
    • 是的,你先用 CTRL-Z 停止它,然后输入bg,这将使进程继续运行,但在后台。
    【解决方案2】:

    尝试在命令末尾添加一个 & 符号:

    ssh -N -D 7070 root@ip_address &
    

    解释:

    这个尾随 & 指示 shell 在后台运行命令,也就是说,它被分叉并在一个单独的子 shell 中作为作业异步运行。 shell 将立即返回 0 的返回状态为 true 并正常继续,在脚本中处理进一步的命令或将光标焦点返回给 Linux 终端中的用户。

    shell 将打印出分叉进程的作业号和进程 ID (PID),如下所示:

    $ ./myscript.py &
    [1] 1337
    

    分叉进程的标准输出仍将附加到父进程,因此任何输出仍将出现在您的终端中。

    在使用单个尾随 & 符号 & 派生进程后,其进程 ID (PID) 存储在特殊变量 $! 中。后面可以用这个来指代流程:

    $ echo $!
    1337
    

    一旦一个进程被分叉,它就可以在作业列表中看到:

    $ jobs
    [1]+  Running                 ./myscript.py &
    

    并且可以在使用前台命令完成之前将其带回命令行:

    fg
    

    如果您已经派生了多个进程,则前台命令采用作业编号的可选参数。

    单个 & 也可以分隔要异步运行的命令列表。

    ./script.py & ./script2.py & ./script3.py & 
    

    在这个例子中,所有 3 个 python 脚本同时运行在不同的子 shell 中。它们的标准输出仍将附加到父 shell,因此如果从 Linux 终端运行它,您仍然会看到输出。

    这也可以用作快速破解,以利用带有 shell 脚本的多个内核,但请注意,这是一种破解!

    要将进程完全从 shell 中分离出来,您可能需要将 stdout 和 stderr 通过管道传输到文件或 /dev/null。一个很好的方法是使用 nohup 命令。

    以上解释来源:http://bashitout.com/2013/05/18/Ampersands-on-the-command-line.html

    【讨论】:

    • 感谢您的回答,但它不起作用,当我将 & 结束命令时,它转到背景,但它也停止了......我怎样才能防止停止?
    【解决方案3】:

    您可以添加选项-f 以使ssh 命令在后台运行。 所以答案是ssh -f -D port username@hostname -N

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 2014-07-11
      相关资源
      最近更新 更多