我正在使用Putty连接到远程服务器。我想知道的是,如果有任何方法可以编写我的命令并允许它们在我用Putty关闭会话后继续运行。原因是我不想一直打开电脑。有没有办法做到这一点?。
使用解决方案进行更新
对于我提出的问题,最佳解决方案是使用提供的命令之一,例如 nohup ,因为您不必安装任何其他软件。但如果您遇到同样的问题,请使用屏幕,安装并使用它。太棒了。
我选择了Norman Ramsey的答案作为最爱,因为使用命令和屏幕提出了几个解决方案。但是请特别检查PEZ的其他答案,然后你就可以了解屏幕能够做什么。
答案 0 :(得分:84)
屏幕!这是自切片面包以来最好的事情。 (是的,我知道其他人已经提出过这个建议,但是整个世界都应该加入并建议它。)
屏幕就像,嗯...就像使用VNC等连接到GUI destop,但是用于命令shell窗口。您可以在同一个屏幕会话中同时打开多个shell“窗口”。你可以这样做:
就像魔术一样。我一直在使用屏幕比我记忆中的时间更长,我仍然对它的血腥程度感到非常惊讶。
编辑:只想提及现在还有 tmux 。非常像屏幕,但具有一些独特的功能,将窗户拆分为最突出的。
答案 1 :(得分:28)
nohup
,disown
和screen
都很好,但screen
是最好的,因为与其他两个不同,screen
允许您断开连接远程服务器,保持一切运行,然后重新连接以查看发生了什么。使用nohup
和disown
,您无法恢复互动。
答案 2 :(得分:10)
尝试使用GNU Screen。它允许您一次打开几个shell。你可以与那些正在运行的炮弹断开连接(即与Putty关闭会话),他们会继续做他们的事情。
答案 3 :(得分:9)
您要找的是nohup。
请参阅wiki链接以了解如何使用它。
答案 4 :(得分:5)
屏幕是最好的。
尝试:
screen -dmS“MyTail”tail -f / var / log / syslog
此后台启动命令。
使用screen -r列出,或者屏幕-r Mytail进入会话。
如果更多用户需要访问同一会话,请使用:screen -rx MyTail,并且两个或更多用户共享会话。
答案 5 :(得分:4)
如果您无法使用screen
(例如,因为您的SSH会话是以编程方式驱动的),您还可以使用daemonize将该程序作为守护程序运行。
答案 6 :(得分:3)
一种适合我的方法是at
。
at
就像cron一样,但是对于一次性工作。我今天用它来下载一个大文件,而不必保持我的会话活着。
例如:
$ at 23:55
at> wget http://file.to.download.com/bigfile.iso
at> ^D
你传递at
一次(将来),它会给你一个提示。您输入当时要运行的命令并按ctrl + d。您可以退出会话,它将在指定的时间运行命令。
Wikipedia在at
上有更多信息。
答案 7 :(得分:1)
./command & disown
答案 8 :(得分:0)
ssh localhost && ./command && exit