在服务器上跑.py代码时,直接使用python命令运行代码即可,但由于连接服务器需要使用学校的VPN,连上之后导致自己的网速特别慢无法正常浏览网页等问题,所以可以通过nohup指令将代码后台执行,运行完成后再登录VPN收结果即可。

一、nohup后台执行

① nohup后台执行,忽略输入并将输出保存到指定文件

1
2
3

nohup python main.py > myresult.out

其中,main.py为要运行的程序,myresult.out为输出文件,两者默认保存在同一路径。python指令也可以换成其他程序执行指令来运行其他语言的程序。

② nohup后台执行.py文件,并将执行的正常日志和错误日志都输出到myresult.out文件中

1
2
3

nohup python -u main.y > myresult.out 2 > &1 &

myfile.py >>myresult.out是指定标准输入的输出文件,2>&1是指将执行的错误日志 重定向到标准输出,因为标准输出是指向文件
myresult.out,由于重定向,所以2代表的错误日志也会输出到这个文件中(0:标准输入流 stdin;1:标准输出流 stdout;2:标准错误流 stderr)nohup XXX & 固定的后台执行的格式。

二、Python相关进程

Linux可以通过ps指令相关参数查看各种进程,但是查看所有进程好比大海捞针,所以查看python相关进程即可

1
2
3

ps -ef | grep python

我执行后的结果,可以看到我的运行的代码进程号为851512。

三、结束进程

如果不想某个进程继续执行了,可以结束进程,不要为了节省时间开很多进程一起运行(⊙o⊙),显存大概率会爆掉~~~

1
2
3

kill -9 851512