在 shell 中运行命令,并在关闭会话时继续运行该命令

2024-11-08 09:04:00
admin
原创
199
摘要:问题描述:我正在使用 Putty 连接到远程服务器。我想知道是否有任何方法可以编写命令并允许它们在关闭与 Putty 的会话后继续运行。这样做的原因是我不想一直开着电脑。有什么办法吗?更新解决方案对于我的问题,最好的解决方案是使用提供的命令之一,例如nohup,因为您不必安装任何其他软件。但如果您遇到同样的问...

问题描述:

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

更新解决方案

对于我的问题,最好的解决方案是使用提供的命令之一,例如nohup,因为您不必安装任何其他软件。但如果您遇到同样的问题,请使用 screen,安装并使用它。它太棒了。

我选择了 Norman Ramsey 的答案作为收藏,因为他提出了几种使用命令和屏幕的解决方案。但请查看其他答案,特别是 PEZ 的答案,然后您就会了解屏幕可以做什么。


解决方案 1:

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

screen 就像,就像,嗯... 就像使用 VNC 或类似的东西连接到 GUI 桌面,但用于命令 shell 窗口。您可以在同一个 screen 会话中同时打开多个 shell“窗口”。您可以执行以下操作:

  1. 使用“screen -dR”启动屏幕会话(习惯使用-dR)

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

这就像魔术一样。我使用 Screen 的时间已经不记得有多长了,但我仍然对它的出色表现感到惊讶。

编辑:只想提一下现在还有tmux。非常像screen,但有一些独特的功能,其中最突出的是分割窗口。

解决方案 2:

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

解决方案 3:

尝试使用GNU Screen。它允许您同时打开多个 shell。并且您可以断开与正在运行的 shell 的连接(即关闭与 Putty 的会话),它们将继续执行其工作。

解决方案 4:

您正在寻找的是nohup。

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

解决方案 5:

screen是最好的。

尝试:

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

该命令在后台启动。

使用screen -r列出,和或screen -rMytail进入会话。

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

解决方案 6:

如果您无法使用screen(因为例如您的 SSH 会话是由编程驱动的),您也可以使用daemonize将程序作为守护进程运行。

解决方案 7:

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

at工作原理与 cron 类似,但只用于一次性任务。我今天使用它下载了一个大文件,而不必保持会话处于活动状态。

例如:

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

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

维基百科有更多关于的信息at

解决方案 8:

./command & disown

解决方案 9:

ssh localhost && ./command && exit
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用