我正在使用 Putty 连接到远程服务器。我想知道是否有任何方法可以编写我的命令并允许它们在我用 Putty 关闭会话后继续运行。这样做的原因是我不想让电脑一直开着。有什么办法可以做到这一点吗?

更新解决方案

对于我提出的问题,最好的解决方案是使用提供的命令之一,例如 诺哈普, ,因为您无需安装任何其他软件。但是,如果您遇到同样的问题,请使用屏幕,安装并使用它。太神奇了。

我选择 Norman Ramsey 的答案作为最喜欢的答案,因为提出了几种使用命令的解决方案和 屏幕. 。但请检查其他答案,特别是 PEZ 的答案,然后您就会了解屏幕能够做什么。

有帮助吗?

解决方案

nohup disown screen 都很好,但 screen 是最好的,因为与其他两个不同, screen 允许您断开与远程服务器的连接,保持一切正常运行,然后重新连接以查看发生的情况。使用 nohup disown ,您无法恢复交互。

其他提示

屏幕! 这是自从切片面包以来最好的东西。(是的,我知道其他人已经建议了它,但它太好了,全世界都应该加入并建议它。)

屏幕就像,就像,嗯……就像使用 VNC 等连接到 GUI 桌面一样,但适用于命令 shell 窗口。您可以在同一屏幕会话中同时打开多个 shell“窗口”。你可以做这样的事情:

  1. 使用“screen -dR”启动屏幕会话(习惯使用-dR)
    • 在一个窗口中运行一些命令
    • 控制键-A,C 创建一个新窗口,在 vim 中打开一个文件
    • 控制键-A,0 返回第一个窗口并对您刚刚编辑的文件发出一些命令
    • 控制键-A, 1 返回到你的 vim 会话
    • 控制键-A, C 对于另一个窗口,也许可以执行“sudo - su”(因为您恰好需要一个完整的 root shell)
    • 控制键-A, 0 并启动后台进程
    • 控制键-A, C 要创建一个新窗口,请“tail -f”该后台进程的日志
    • 控制键-A, d 然后断开屏幕连接 控制键-D 与服务器断开连接
    • 去度假三周
    • 再次登录服务器并发出“screen -dR”以连接到现有的 screen 会话
    • 检查第四个窗口中的日志 控制键-A, 3 (就好像你一直在那里看着一样)
    • 控制键-A, 1 再次开始该 vim 会话
    • 我想你现在开始明白了吧?=)

这就像魔法一样。我使用屏幕的时间已经超出了我的记忆,但我仍然对它的出色表现感到非常惊讶。

编辑: :只是想提一下现在还有 多路复用器. 。非常喜欢 屏幕, ,但有一些独特的功能,分割窗户是最突出的一个。

尝试使用 GNU Screen 。它允许您一次打开几个shell。你可以与那些正在运行的炮弹断开连接(即与Putty关闭会话),他们会继续做他们的事情。

您正在寻找的是 nohup

请参阅wiki链接以了解如何使用它。

屏幕是最好的。

尝试:

screen -dmS" MyTail" tail -f / var / log / syslog

此后台启动命令。

使用screen -r列出,或者屏幕-r Mytail进入会话。

如果更多用户需要访问同一会话,请使用:screen -rx MyTail,并且两个或更多用户共享会话。

如果你不能使用 screen (例如,因为你的SSH会话是以编程方式驱动的),你也可以使用 daemonize 将程序作为守护程序运行。

对我来说效果很好的一种方法是 at

中的 就像cron一样,但是对于一次性工作。我今天用它来下载一个大文件,而不必保持我的会话活着。

例如:

$ at 23:55
at> wget http://file.to.download.com/bigfile.iso
at> ^D  

您在一次(将来)传递,它会提示您。您输入当时要运行的命令并按ctrl + d。您可以退出会话,它将在指定的时间运行命令。

维基百科提供了有关的更多信息

./command & disown
ssh localhost && ./command && exit
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top