如何在后台运行脚本并在我注销时让它继续运行?

Nic*_*k T 7 linux bash

可能的重复:
在未登录的情况下让 bash 脚本在远程终端上运行?

我有一个运行 Gaussian 的 bash 脚本,这是一个化学结构计算器,它花了几天时间来处理一个分子。它在 Linux 机器上运行,我将输入文件和上述脚本加载到该机器上,然后我(应该)运行它,等待一段时间,希望程序没有崩溃,然后重新登录以收集结果。

有点像 *nx 新手,但我似乎无法弄清楚如何设置脚本运行和断开连接,同时让它继续运行。

./jobscript
Run Code Online (Sandbox Code Playgroud)

似乎阻塞直到它完成,如果我断开它终止

./jobscript &
Run Code Online (Sandbox Code Playgroud)

没有阻塞,我可以看到它在运行top,所以我认为它没问题,但是在注销时它显然杀死了程序。

即使我注销,我如何设置它运行并保持运行?

Xen*_*ive 9

您可以使用:

nohup /path/to/script >output 2>&1 &
Run Code Online (Sandbox Code Playgroud)


cha*_*e55 8

您要使用该程序screen下面是手册页吧,和这里是一个很好的教程。它应该完全按照您的意愿执行操作 - 在后台执行某些操作,稍后再返回。


Phi*_*bin 5

您可以启动一个屏幕会话,开始您的工作,然后断开与屏幕会话的连接。

稍后,您可以重新连接到屏幕会话以查看您的工作是否已完成。

另见https://serverfault.com/questions/2016/on-a-linux-server-how-do-you-use-multiple-terminals-over-a-single-ssh-connection/2027#2027

  • 我强烈建议在 nohup 上使用 screen (2认同)