我正在通过SSH (Putty)在Linux机器上工作。我需要让一个进程在夜间运行,因此我认为可以通过在后台启动该进程(在命令末尾使用&号)并将stdout重定向到一个文件来实现这一点。

令我惊讶的是,这行不通。只要我关闭Putty窗口,进程就会停止。

我怎样才能防止这种情况发生?


当前回答

就我个人而言,我喜欢“batch”命令。

$ batch
> mycommand -x arg1 -y arg2 -z arg3
> ^D

这将把它塞到后台,然后将结果邮寄给你。这是cron的一部分。

其他回答

如果您想将详细信息记录到一个文件中,Nohup非常有用。但当它进入后台时,如果你的脚本要求,你无法给它一个密码。我想你一定要试一下屏幕。它是一个实用工具,你可以使用yum安装在你的linux发行版上,例如在CentOS上yum安装屏幕,然后通过putty或其他软件在你的shell类型屏幕上访问你的服务器。它将打开屏幕[0]在腻子。做好你的工作。你可以在同一个putty会话中创建更多的screen[1], screen[2]等。

你需要知道的基本命令:

启动屏幕

屏幕


创建下一个屏幕

ctrl + a + c


移动到您创建的下一个屏幕

ctrl + a + n


要分离

ctrl + a + d


在工作期间关闭腻子。下次当你登录通过putty类型

屏幕- r

重新连接到屏幕,您可以看到您的进程仍在屏幕上运行。要退出屏幕,输入#exit。

欲了解更多细节,请参阅男子界面。

nohup blah &

用您的进程名替换blah!

看看“nohup”程序。

我使用屏幕命令。这个链接详细说明了如何做到这一点

https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/#starting

如果你想同时运行X个应用程序,可以使用xpra和“screen”。