【问题标题】:What happens to a command running on a server if you lose your Internet connection?如果您失去 Internet 连接,服务器上运行的命令会发生什么情况?
【发布时间】:2016-03-24 15:34:19
【问题描述】:

对不起,菜鸟问题。我在我的网络服务器上运行一个 shell 脚本来下载 900 个左右的文件。但是,我通过笔记本电脑上的终端外壳执行此操作,并且我即将失去当前的 Internet 连接。

服务器上的脚本是否会继续运行直到完成?还是它停止了,因为它不再向我断开连接的笔记本电脑上的终端提供反馈。

【问题讨论】:

    标签: linux bash shell unix terminal


    【解决方案1】:

    默认情况下,Web 服务器上的交互式 shell 将在脚本终止后立即向您的脚本发送 HUP 信号。你可以通过这样调用你的脚本来防止这种情况发生:

    <scriptname> & disown
    

    这样它将在后台运行 (&amp;) 并从 shell 的作业列表 (disown) 中删除,因此 shell 不会向其发送 HUP 信号。

    请注意,disown 可能不是必需的 in some cases

    【讨论】:

      【解决方案2】:

      它会随着父进程(终端)死亡而死亡。但是,使用诸如screennohup (以及其他)之类的实用程序,即使终端死机,也可以让进程继续运行,您甚至可以后台进程并在它已经运行后取消它,see this Q for more there.

      Further reading you may want to peruse, there's a ton out there on this subject.

      【讨论】:

        猜你喜欢
        • 2014-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多