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

Edu*_*rdo 34 linux shell command

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

更新解决方案

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

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

PEZ*_*PEZ 84

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

屏幕就像,像嗯...像使用VNC等连接到GUI destop,但是用于命令shell窗口.您可以在同一个屏幕会话中同时打开多个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会话
    • 我猜你现在开始拍照了吗?=)

这就像魔术一样.我一直在使用屏幕比我记忆中的时间更长,我仍然对它的血腥程度感到非常惊讶.

编辑:只想提一下现在也有tmux.非常像屏幕,但有一些独特的功能,分裂窗口是最突出的.

  • 我用`screen -xRR`开始/加入我的屏幕会话. (2认同)
  • JF假装我很懒,不想做"男人的屏幕".你能告诉我们为什么-xRR吗? (2认同)

Nor*_*sey 28

nohup,disown并且screen都很好但是screen最好的,因为与其他两个不同,screen允许您断开与远程服务器的连接,保持一切正常运行,然后重新连接以查看正在发生的事情.随着nohupdisown你无法恢复互动.


Car*_*don 10

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


unk*_*ser 9

你要找的是nohup.

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


Lau*_*ira 5

屏幕是最好的.

尝试:

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

这个启动命令在后台.

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

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