我退出后保持linux进程运行

我退出后保持linux进程运行,第1张

概述我正在通过SSH连接到 Linux机器,我正在尝试运行一个重量级的bash脚本来进行文件系统 *** 作.预计它会持续运行数小时,但由于我的互联网连接问题,我不能让SSH会话保持打开状态. 我怀疑使用后台运算符运行脚本,&符号(&)会做的伎俩,因为我尝试了它,后来发现进程没有完成.如何注销并保持进程运行? 最好的方法是在终端多路复用器中启动该过程.或者,您可以使过程不接收HUP信号. A terminal 我正在通过SSH连接到 Linux机器,我正在尝试运行一个重量级的bash脚本来进行文件系统 *** 作.预计它会持续运行数小时,但由于我的互联网连接问题,我不能让SSH会话保持打开状态.

我怀疑使用后台运算符运行脚本,&符号(&)会做的伎俩,因为我尝试了它,后来发现进程没有完成.如何注销并保持进程运行?

解决方法 最好的方法是在终端多路复用器中启动该过程.或者,您可以使过程不接收HUP信号.

A terminal multiplexer提供独立于“真实”终端运行的“虚拟”终端(实际上今天所有终端都是“虚拟”,但这是另一天的另一个主题).即使您的真实终端已使用ssh会话关闭,虚拟终端也将继续运行.

从虚拟终端启动的所有进程将继续与该虚拟终端一起运行.当您重新连接到服务器时,您可以重新连接到虚拟终端,除了通过的时间之外,一切都将好像什么也没发生.

两种流行的终端多路复用器是screen和tmux.

屏幕有一个陡峭的学习曲线.这是一个很好的教程,图解释了这个概念:http://www.ibm.com/developerworks/aix/library/au-gnu_screen/

当终端关闭时,终端将HUP信号(或SIGHUP)发送到其所有子进程.接收SIGHUP时的常见 *** 作是终止.因此,当您的ssh会话断开连接时,您的所有进程都将终止.为避免这种情况,您可以使您的流程无法获得SIGHUP.

两种简单的方法是nohupdisown.

有关nohup和disown如何工作的更多信息,请阅读此问题和答案:https://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and

注意:虽然进程将继续运行,但您无法再与它们进行交互,因为它们不再连接到任何终端.此方法主要用于长时间运行的批处理过程,一旦启动,不再需要任何用户输入.

总结

以上是内存溢出为你收集整理的我退出后保持linux进程运行全部内容,希望文章能够帮你解决我退出后保持linux进程运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存