【问题标题】:How is it safe to move a program to the background with CTRL-Z and bg? [closed]使用 CTRL-Z 和 bg 将程序移至后台如何安全? [关闭]
【发布时间】:2013-03-19 06:50:45
【问题描述】:

我有一个通过 ssh 传输一些文件的脚本。我通常会启动脚本,一旦确定它运行正常,我会使用 CTRL-Z 将其停止,然后使用 bg 使其在后台运行。

> ./download-script.sh
Downloading...
Got file foobar.txt
Got file baz.txt
Downloading bash.txt (42%)
[2]+  Stopped      download-script.sh
> bg
[1]+ download-script.sh &
>

这如何安全?发送文件的服务器似乎不知道等待我的进程重新联机,是吗?

如果我等了一个小时然后在后台恢复脚本,它会从中断的地方继续吗?

我的示例使用 ssh 文件传输,但是当我的脚本与大多数资源交互时,这也成为我的一个问题。

【问题讨论】:

    标签: bash process background-process foreground


    【解决方案1】:

    I/O 缓冲区将帮助它承受一点延迟(即,如果您最多暂停脚本/命令几秒钟,它不会出错。但超过几秒钟,我想您可能会遇到其他问题:起点和终点之间的 TCP/UDP 超时?I/O 超时?(例如:输入密码太长等)

    如果你只有“本地”的东西,并且你使用的命令没有内置超时:例如,如果你这样做:

    tar cvf something.tar /path/to/something 
    

    然后ctrl-z 它,然后bg(唤醒并发送到后台)或fg(唤醒并发送到前台):即使您等待很长时间,它也会起作用。

    但是与此同时,您有更多机会修改被 tar-ed 的文件之一...

    或者你的 shell 可能有一个 TIMEOUT/TMOUT 让它之前停止。

    或者(任何其他原因,真的:关机,你的猫踩着 CTRL+d 退出 shell 等等)

    iow:你可以,除非某些东西依赖于它“快速”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 2011-04-28
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多