Linux中将代码nohup后台执行、查看正在运行代码、结束进程

Linux中将代码nohup后台执行、查看正在运行代码、结束进程

在服务器上跑代码时,直接在命令行运行代码,常常遇到代码还没跑完却因为网络不稳定等异常终止的问题,所以可以通过nohup指令将代码后台执行,也便于同时运行多个程序。

  • nohup后台执行,忽略输入并将输出保存到指定文件
nohup python myfile.py >> myresult1.out &

其中,myfile.py为需要运行的程序,myresult.out为输出文件,myresult.out默认与.py文件保存在同一路径下。
python指令也可以换成其他程序执行指令来运行其他语言的程序,其余不变
执行后会在当前路径生成一个.out文件
在这里插入图片描述

  • nohup后台执行py文件,并将执行的正常日志和错误日志都输入到myresult2.out中
nohup python -u myfile.py >>myresult2.out 2>&1 &

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

  • 查看当前python相关进程
    Linux可以通过ps指令相关参数查看各种进程,但查看所有进程往往等于大海捞针,所以查看python相关进程在运行代码时更为实用
ps -ef |grep python

下图为我的执行结果
在这里插入图片描述
可以看到我当前有两个程序正在运行,进程号分别为16620和17575

  • 结束进程
    如果不想某个程序继续执行了,可以结束进程
kill -9 <进程号>

例如,上图中我想停止执行16620的main_forCT.py,则输入

kill -9 16620

最后,如果做DL实验调参也不要为了节省时间开很多进程一起运行哦,显存大概会炸掉的:)

你可能感兴趣的:(Python,linux,python)