在shell中运行命令,并在closures会话时继续运行该命令
我正在使用腻子连接到远程服务器。 我想知道的是,如果有什么方法来写我的命令,让他们继续运行后,我用腻子closures会议。 原因是我不想让计算机始终处于开启状态。 有没有办法做到这一点?
更新与解决scheme
对于我提出的问题,最好的解决scheme是使用提供的命令之一,如nohup ,因为你不必安装任何额外的软件。 但是,如果您使用同一个屏幕,请安装并使用它。 这太神奇了。
我select了诺曼·拉姆齐的答案作为最喜欢的,因为使用命令和屏幕提出了几个解决scheme。 但是请特别检查一下PEZ的其他答案,然后你会看到什么屏幕能够待办事项。
nohup
, disown
和screen
都很好,但screen
是最好的,因为与其他两个screen
不同的是, screen
允许您从远程服务器断开连接,保持一切正常运行,然后重新连接以查看正在发生的事情。 nohup
和disown
你不能恢复交互。
屏幕! 这是自切片面包以来最好的事情。 (是的,我知道其他人已经提出了,但全世界都应该join并提出build议。)
屏幕就像ummmm一样,就像使用VNC或类似的东西连接到GUI的destop,但是对于命令shell的窗口。 您可以在同一个屏幕会话中同时打开几个shell“窗口”。 你可以做这样的东西:
- 使用“screen -dR”开始一个屏幕会话(习惯使用-dR)
- 在一个窗口中运行一些命令
- 按CTRL – A , C创build一个新窗口在vim中打开一个文件
- 按CTRL – A , 0返回到第一个窗口,并在您刚刚编辑的文件上发出一些命令
- CTRL – A , 1返回到你的vim会话
- CTRL – A , C的又一个窗口,也许做“sudo su”(因为你只是需要一个完整的root shell)
- CTRL – A , 0并开始后台进程
- CTRL – A , C创build一个新的窗口,“tail -f”这个后台进程的日志
- CTRL – A , d断开你的屏幕,然后CTRL – D与服务器断开连接
- 去度假三个星期
- 再次login到服务器并发出“屏幕-dR”连接到您现有的屏幕会话
- 用CTRL – A , 3检查第四个窗口中的日志(这就像你一直在那里一直在看)
- CTRL – A , 1再次select该vim会话
- 我猜你现在已经开始了? =)
这就像魔术一样。 我一直在使用屏幕的时间比我所能记得的要长,我仍然为它的血腥程度而感到惊讶。
编辑 :只想提一下现在还有tmux 。 非常喜欢屏幕 ,但有一些独特的function,拆分最突出的窗口。
尝试使用GNU屏幕 。 它允许你一次打开几个炮弹。 而且你可以从那些正在运行的shell中断开连接(比如用Puttyclosures会话),他们会继续做他们自己的事情。
你正在寻找的是nohup 。
请参阅wiki链接了解如何使用它。
屏幕是最好的。
尝试:
screen -dmS“MyTail”tail -f / var / log / syslog
这个启动命令在后台。
使用屏幕-r列出,或屏幕-r Mytail进入会话。
如果更多用户需要访问同一个会话,请使用:screen -rx MyTail,并且两个或多个用户共享会话。
如果您不能使用screen
(例如,因为您的SSH会话正在以编程方式驱动),您也可以使用守护进程作为守护程序来运行程序。
有一种方法对我很好,
像cron这样的工作,但一次性工作。 我今天使用它来下载一个大文件,而不必保持我的会话活着。
例如:
$ at 23:55 at> wget http://file.to.download.com/bigfile.iso at> ^D
你一次通过(在将来),它会给你一个提示。 你input你想要运行的命令,然后点击ctrl + d。 您可以退出会话,并在指定的时间运行命令。
维基百科有更多的信息at
。
./command & disown
ssh localhost && ./command && exit