nohup操作

nohup操作

背景:vscode 连接服务器远程运行时经常会出现断连需要重新输入密码,如果是在终端跑程序那么中断后无法再恢复在终端的输出,为了能够让程序保留实验结果或需要长时间跑程序而无需值守,需要用到nohup命令。若只是跑一下看看效果可以在IDE上直接跑。

nohup python -u exe.py > ../log/log_240301.log 2>&1 &

nohup:表示不挂断的执行,即 no hang up

-u:python输出是有缓冲的,输出并不能马上打印在日志上,若要及时输出脚本的输出结果就需要加上这个表示python不使用缓冲。

exe.py:需要执行的文件

> ../log/log_240301.log:让标准输出重定向到此路径下的日志文件中,也可不加前面的路径则日志保存在当前目录。>表示覆盖写入,>>表示追加写入。

2>&1:2表示输出的 warning 和 error 信息,1是输出正常信息。其表示将标准错误输出重定向到与标准输出相同的位置,即与日志文件相同

&:表示将命令放到后台执行,使得终端可以继续输入其他命令。

ps aux | grep keyword
  • 查看当前运行的所有包含关键字的程序情况
jobs
  • 可查看当前运行的命令,在终端可通过 Ctrl+C终止
fg %n
  • fg(Foreground)可将后台作业带回前台,但并不会改变输出重定向,它仍将转移到文件 nphup.out 中。
bg %n
  • 使进程n到后台去(Background),n为jobs查看到的PID
kill -9 PID
  • 杀死指定进程号的进程
nvidia-smi
  • 查看显卡的占用情况
posted @ 2024-03-01 01:18  ben犇  阅读(133)  评论(0)    收藏  举报