使用CTRL-Z和bg将程序移动到后台是如何安全的?

时间:2013-03-28 17:37:15

标签: bash process background-process foreground

我有一个脚本通过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文件传输,但当我的脚本与大多数资源交互时,这也成为我关注的问题。

1 个答案:

答案 0 :(得分:1)

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

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

tar cvf something.tar /path/to/something 

然后ctrl-z它,然后bg(唤醒并发送到后台)或fg(唤醒并发送到前台):即使您等待它也能正常工作一个很长的时间。

但与此同时,您有更多机会修改其中一个文件...

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

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

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