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

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

使用解决方案更新

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

我选择诺曼·拉姆齐的答案作为最喜欢的答案,因为我使用命令和屏幕提出了几种解决方案。但请检查其他答案,特别是PEZ的答案,然后您就可以了解屏幕的功能了

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

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

  1. 使用“screen-dR”启动屏幕会话(习惯使用-dR)
    • 在一个窗口中运行一些命令
    • CTRLAC创建一个新窗口,在vim中打开一个文件
    • CTRLA0返回第一个窗口,并对刚刚编辑的文件发出一些命令
    • CTRLA1返回vim会话
    • CTRLAC,用于另一个窗口,可能会执行“sudo-su”(因为您恰好需要一个完整的根shell)
    • 按住CTRL键并启动后台进程
    • CTRLAC要创建一个新窗口,“tail-f”该后台进程的日志
    • CTRLAd断开屏幕连接,然后CTRLd断开与服务器的连接
    • 去度假三周
    • 再次登录服务器并发出“screen-dR”以连接到现有的screen会话
    • 使用CTRLA3检查第四个窗口中的日志(就像您一直在那里观看)
    • CTRLA1再次拾取vim会话
    • 我想你现在开始明白了吧

就像魔法一样。我用屏幕的时间比我记忆中的要长,我仍然对它有多棒感到惊讶

编辑:只想提一下,现在还有tmux。非常类似于屏幕,但有一些独特的功能,最突出的是拆分窗口

发表评论