nohup执行python脚本看不到log

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nohup执行python脚本看不到log相关的知识,希望对你有一定的参考价值。

参考技术A python的输出有缓冲,导致log并不能够马上看到输出。

-u参数,使得python不启用缓冲。

所以修改命令即可:nohup python -u test.py > log &

nohup送入后台运行:

nohup python -u train_lanenet.py  >nohup 2>&1 &

# 使用第一张到第三张GPU卡

import os

os.environ["CUDA_VISIBLE_DEVICES"] = "1,2,3"

Nohup后台运行程序

场景:我现在需要跑脚本批量处理一些数据,但是我又不想盯着控制台看这个脚本的输出结果,想把这些输出结果记录到一个日志文件里面

方案:可以使用 Linux 的 nohup 命令,把进程挂起,后台执行

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log &

运行结果(这个数字是进程号):

>> [1] 13120

有时候可能会报一个提示:

$ nohup: ignoring input and redirecting stderr to stdout

这个影响不大,不用紧张,也可以加多一个 2>&1 就不会出现这个问题

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log 2>&1 &

TIPS:命令最后面的 & 符号是切换到后台去跑,退出终端也不会退出任务进程

运行这个命令之后呢,会输出一个进程号,类似上面的输出,可以使用 top 命令查看运行中的进程,也可以用 ps -aux 查看进程

想要终止这个进程的话只能杀死这个进程,使用 kill 指令处理

$ kill -9 进程号

TIPS:如果进程挂不起来,可能是端口被占用了,自行排查处理便可

 

以上是关于nohup执行python脚本看不到log的主要内容,如果未能解决你的问题,请参考以下文章

nohup 后台运行脚本,且可以实时查看日志

Python后台运行—nohup

Liunx 设置后台执行python程序

nohup让脚本自动执行完

linux后台自动执行命令nohup与日志查看

运行python脚本后台执行