关闭腻子会话后如何使进程保持活动状态?


41

我正在使用腻子与Linux服务器进行交互。我已经开始使用腻子了。该过程正在运行,将需要5到6个小时。我希望在关闭腻子会话后该进程能够继续运行。在关闭腻子会话后如何使该过程保持活动状态?我不想一直打开计算机。有什么办法吗?

Answers:


32

我将屏幕用于此类内容。实际上,有时我会花很长时间,以便回到原来的状态。


该进程现在正在运行,是否对该进程

+1是提及我无可争议的最喜欢的命令行工具。在这种情况下,它是一颗宝石。
Noufal Ibrahim 2010年

@Noufal,完全!@prakash,您需要运行屏幕才能启动任何进程
ziya 2010年

如果要连接到多台计算机,甚至可以在第一个屏幕中运行多个屏幕,这是一个不错的主意,因此您只需连接到一个屏幕即可访问所有正在运行的遥控器。

链接不再起作用
Malky.Kid,

31
^Z
bg %1
disown -h %1

会话完成时,“-h”使进程不受SIGHUP的影响。


3
请注意,无法“放弃”或“采用”该流程-完成此操作后,您将永远无法回到前台。但是,如果该过程是一个批处理工作,可以产生一些文件,那就没关系了。

19

使用nohup命令。只要在命令前加上前缀,它就会守护它们,以使它们在您注销/终止Shell会话时不会停止。默认情况下,标准输出将位于名为nohup.out的文件中。检查手册页以nohup(1)获取更多信息。


该进程正在运行,是否对该进程有效?我问是因为该进程位于中间,我现在不想重新启动它?

太晚了……至少对于正常操作而言。发现如果将调试器附加到该进程,然后使用一组适当的系统调用对其进行调整,那么您可以将其置于后台,这完全不会让人感到惊讶。但这不是推荐的方式-例如,我不会打扰,而且我至少对可能涉及的内容有所了解。现在,您有两种选择:要么保持连接状态,直到完成,要么停止当前进程,然后使用nohup重新启动新进程。
乔纳森·莱夫勒

1
如果您使用的是bash(我认为是zsh),则可以使用Tom Anderson的解决方案和disown过程,以便即使断开连接也可以继续运行。
努法尔·易卜拉欣

是的-取消工作似乎是从事已经运行的工作的方式。之所以可行,是因为开始工作的外壳程序可以操纵所需的属性。
乔纳森·莱夫勒

5

从开始处理nohup "processname" &。您也可以使用screen或分离它tmux


3

上面的解决方案已经很好地描述了,但是没有一个对我有用,直到我也将PuTTY配置编辑为:

启用TCP Keepalive(SO_KEEPALIVE选项)

我在其他任何地方都没有看到它,只是通过反复试验发现了它。


1

Ctrl + z将当前进程发送到后台。

另外,您可以在命令的末尾添加&以在后台运行


4
通常,control-z会将进程置于已暂停动画的状态。bg命令将其置于后台。但是,这也使过程与终端保持连接,而nohup则将其与终端分离,因此可以使腻子断开连接,并使该过程在断开连接后继续存在。
乔纳森·莱夫勒

我发现使用'&'发送到后台使用腻子是可行的,但是当我直接使用shell中的ssh进行连接时,如果我关闭连接,则后台进程将被杀死。知道为什么吗?
Zardoz89

0

如果您希望进程中包含的程序始终在后台运行或经常在后台运行,则可以对其进行编码以使其与控制终端分离(通过选项标志使此类行为可控),然后在后台运行。

当然,这是一个长期解决方案,不适用于当前正在运行的流程。


0

您可以&在链接后使用。

例:

[localhost ~ ]# wget http://www.link.com/download/download.zip &

问题不是关于链接的问题,您的意思是&在命令行后添加符号吗?
丹尼

0

关闭腻子窗口后如何保持weblogic的运行:

简单步骤:通过腻子登录后,请执行以下步骤:

  1. 转到startWebLogic.sh命令所在的服务器上的目录。
  2. 键入命令screen并按Enter(将打开一个新屏幕)。
  3. 在新屏幕中,键入run命令./startWebLogic.sh
  4. Ctrl+,a然后按d(不按住Ctrl);您将返回上一屏幕。
  5. 当您想返回到服务器日志屏幕时,键入command screen -r

0

如果该过程是针对nodejs的,则可能是您的意图,因为您最初是将其发布在stackoverflow上的。我本来是在寻找这个问题的。我发现了pm2,真是太神奇了。其他答案可能对一般腻子有帮助,但是如果它是特定于节点的,那么这是迄今为止最好的答案,因为它内置了监视功能,并且设置很简单

$ npm install pm2 -g
$ cd yourappdirectory

“ PM2是具有内置负载平衡器的Node.js应用程序的生产过程管理器。它使您可以使应用程序永远保持活动状态,可以在不停机的情况下重新加载它们,并方便执行常见的系统管理任务。

以生产模式启动应用程序非常简单:”

$ pm2 start yourappname.js

“使用保存然后冻结命令,您可以使进程在重新启动时自动启动”

$ pm2 save
$ pm2 freeze

用于监视其

$ pm2 monit

然后重启

$ pm2 restart yourappname

也用于直接记录信息

$ pm2 logs

现在,我可以轻松地运行两个腻子窗口,而不必使用我的双向浏览器窗口(我无法向上滚动);有关更多信息,请参见主要的github。

https://github.com/Unitech/pm2

太奇妙了。


您能否进一步解释一下pm2 什么以及您显示的命令什么?请不要在评论中回复;编辑  您的答案,使其更清晰,更完整。
G-Man说“恢复莫妮卡”

为社区添加了更多文档。我希望我会在2年前找到pm。
sasy解决方案
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.