Linux下后台运行和终止python程序常用命令

在深度学习的实验中,我们需要在Linux服务器上长时间的运行python程序。以下是在实验中运行python程序以及提前终止python程序可能用到的一系列命令。

后台运行python程序

  • 后台运行程序

运行test.py,标准输出(运行记录)保存在log.txt中

nohup python -u test.py > log.txt 2>&1 & 

nohup是no hang up,& 是后台运行,两者结合可以在用户退出时,保持后台运行

-u 是不启用缓存,不然的话print重定向写入文件的过程会有缓存,log.txt文件不会实时更新

2>&1 错误重定向到标准输出

终止程序运行

  • 观察GPU使用情况

在实验的过程中,我们可能会因为代码bug等各种原因,希望提前停止在后台运行的程序。但是此时可能你已经记不清后台运行的多个程序中,哪一个是我们想要停止的程序。此时可以先通过观察GPU的使用情况命令,获取正在GPU上运行的程序的pid。

 watch -n 1 nvidia-smi
  • 根据pid查看对应的程序

在或许到后台运行的程序的pid集合后,我们可以通过以下命令查看每个pid对应的程序,运行后会输出我们运行程序使用的命令以及命令行参数,从而找到需要提前终止的程序。

ps -ef|grep 16923
  • 终止程序

假设pid为16923的程序就是我们希望提前终止的程序,那么我们使用以下命令提前终止程序的运行。

kill -9 16923
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐