当前位置:  开发笔记 > 编程语言 > 正文

从ssh注销后如何使程序继续运行?

如何解决《从ssh注销后如何使程序继续运行?》经验,为你挑选了5个好方法。

假设您有一个在前台运行的程序,请按ctrl-Z,然后:

[1]+  Stopped                 myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout

如果只有一个作业,则无需指定作业编号.只需使用disown -hbg.

上述步骤的说明:

你按ctrl-Z.系统暂停正在运行的程序,显示作业号和"已停止"消息,并返回到bash提示符.

您键入disown -h %1命令(此处,我使用了a 1,但您使用了Stopped消息中显示的作业编号),这标记了作业,因此它忽略了SIGHUP信号(它不会通过注销而停止).

接下来,bg使用相同的作业号键入命令; 这将恢复程序在后台运行,并显示一条消息确认.

您现在可以注销,它将继续运行..



1> Paused until..:

假设您有一个在前台运行的程序,请按ctrl-Z,然后:

[1]+  Stopped                 myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout

如果只有一个作业,则无需指定作业编号.只需使用disown -hbg.

上述步骤的说明:

你按ctrl-Z.系统暂停正在运行的程序,显示作业号和"已停止"消息,并返回到bash提示符.

您键入disown -h %1命令(此处,我使用了a 1,但您使用了Stopped消息中显示的作业编号),这标记了作业,因此它忽略了SIGHUP信号(它不会通过注销而停止).

接下来,bg使用相同的作业号键入命令; 这将恢复程序在后台运行,并显示一条消息确认.

您现在可以注销,它将继续运行..


你按ctrl-Z.系统暂停正在运行的程序,显示作业号和"已停止"消息,并返回到bash提示符.您键入"disown -h%1"命令(这里,我使用了"1",但您使用了"已停止"消息中显示的作业编号),这标记了作业,因此它忽略了SIGHUP信号(登出时不会停止).接下来,使用相同的作业号键入"bg"命令.这将在后台恢复程序的运行,并显示一条消息确认.您现在可以注销,它将继续运行...
我测试它,并且不起作用..当我退出时退出...
你能解释一下每一步后到底发生了什么?
@ButtleButkus:你应该能够用`ps x`看到它们
...您应该知道,当您使用"bg"命令时,结果与您在后台使用&符号运行程序的结果相同.它不会有任何输出到stdout所以应该将输出写入文件(如果你不自己重定向,nohup会将标准输出重定向到nohup.out或〜/ nohup.out).
这不适合我.发现当你注销时,输出流就会死掉,因此你的过程也是如此,即使你"不知道".你可以重定向,例如`foo&>/dev/null&; disown%1`,但要注意重定向缓冲区随着时间的推移变大.有这个问题的解决方案[这里](http://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe).

2> paxdiablo..:

您应该尝试nohup在后台使用并运行它:

nohup sleep 3600 &


是否有办法在再次登录时将此作业恢复到前台?

3> Janusz..:

我会尝试程序屏幕.


屏幕的替代品是`tmux`
这是为什么永远不应该使用仅链接答案的典型代表.
即使有非交互式任务,也很高兴看到程序完成没有错误.在断开连接的情况下始终使用屏幕也是一种好习惯.
屏幕是一个强大的好工具,但nohup可能更适合此任务。仅当您要求程序是交互式的并且以后可以返回到应用程序时才需要屏幕。老实说,我经常出于与上述问题完全相同的原因而使用屏幕。

4> diciu..:

从后台开始:

./long_running_process options &

在您退出之前拒绝该工作:

disown


"disown"只是放弃对作业的控制,它不会改变过程的特权.

5> Matthew Flas..:

你想要nohup.请参见http://nixcraft.com/linux-software/313-ssh-nohup-connection.html

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有