当前位置:  开发笔记 > 运维 > 正文

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

如何解决《在shell中运行命令,并在关闭会话时继续运行该命令》经验,为你挑选了5个好方法。

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

更新解决方案

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

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



1> PEZ..:

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

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

    使用"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`开始/加入我的屏幕会话.
JF假装我很懒,不想做"男人的屏幕".你能告诉我们为什么-xRR吗?

2> Norman Ramse..:

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



3> Carlos Rendo..:

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



4> unknownuser..:

你要找的是nohup.

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



5> Lauro Olivei..:

屏幕是最好的.

尝试:

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

这个启动命令在后台.

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

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

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有