最近实验室上新新的服务器了,我把放在重庆大学服务器中所有的Conda环境都转移到自己实验室新上的服务器上了,记录以下自己在新服务器上使用nohup挂起程序使SSH断连后也照常跑程序的过程。

一、Ubuntu安装nohup

不同于CentOS,Ubuntu不使用yum,因此我们可以直接使用apt-get安装所需的软件包。OK,进入正题。在终端执行以下命令即可安装。

1
sudo apt-get install coreutils

这里我们安装的coreutils软件包而不是nohup,这是因为coreutils中包含nohup命令。

二、使用nohup挂起程序

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不应该结束,那么可以使用nohup命令。该命令忽略所有挂断(SIGHUP)信号,可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断的意思( no hang up)。
nohup命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。当然你也可以使用 > xxx.data进行重定向。

使用命令格式一般为:nohup yourcommand &

yourcommand:启动对象命令。可以跟该命令需要的各种参数。
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出. nohup&结合起来,可以实现不挂断的后台运行。

使用nohup python main.py > main.txt将main.py运行并挂起,并将程序的输出日志保存在main.txt