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

2024-11-08 09:04:00
admin
原创
35
摘要:问题描述:我正在使用 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
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   609  
  在现代项目管理中,资源的有效利用是确保项目成功的关键因素之一。随着技术的不断进步,越来越多的工具和软件被开发出来,以帮助项目经理和团队更高效地管理资源。本文将介绍10款工具,这些工具可以帮助项目团队提升资源利用效率,从而实现项目目标。禅道项目管理软件禅道项目管理软件是一款开源的项目管理工具,广泛应用于软件开发和其他行业...
项目管理系统   3  
  在项目管理领域,软件工具的不断升级和创新是推动效率和协作的关键。2024年,众多项目管理软件将迎来一系列令人期待的升级功能,这些新特性不仅将提升团队的工作效率,还将增强用户体验和数据分析能力。本文将详细介绍10款项目管理软件的最新升级功能,帮助项目经理和团队成员更好地规划和执行项目。禅道项目管理软件禅道项目管理软件一直...
开源项目管理工具   2  
  信创国产系统的10个关键厂商及其技术生态随着全球信息技术格局的不断演变,信创(信息技术应用创新)产业作为国产化替代的重要阶段,正逐步成为推动我国信息技术自主可控、安全可靠的核心力量。信创产业不仅关乎国家信息安全,也是数字经济高质量发展的关键支撑。本文将深入探讨信创国产系统中的10个关键厂商及其技术生态,分析它们在信创浪...
项目管理流程   0  
  在探讨项目管理的广阔领域中,成功并非偶然,而是精心策划、高效执行与持续优化的结果。项目管理的成功之道,可以从明确的目标设定与规划、高效的团队协作与沟通、以及灵活的风险管理与适应变化这三个核心方面进行深入解析。每个方面都是项目成功的基石,它们相互交织,共同支撑起项目的顺利推进与最终成就。明确的目标设定与规划项目管理的首要...
建筑工程项目管理规范   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用