nohup 英文全称 no hang up(不挂起),
用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会在当前文件夹下输出一个名叫 nohup.out 的文件(记录终端输出)。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
例如有一个test.py文件,切换到当前文件夹下运行,输入命令:
nohup python test.py &
那么程序就会执行,并且在当前文件夹下生成nohup.out的日志文件。(&:让命令在后台执行,终端退出后命令仍旧执行。)
但是有个问题:我在py文件里面有print,但是在nohup.out文件里不能及时输
出(tqdm倒是能及时输出),经过查询发现了原因,这是因为python的输出有缓冲,导致nohup.out并不能够马上看到输出。
python 有个-u参数,使得python不启用缓冲。
那么运行py文件的命令可以修改为:
nohup python -u test.py &
如果想不想默认输出到nohup.out,可以使用重定向的方法,输出到指定的文件。例如:
nohup python -u test.py > test.out 2>&1 &
该命令会将test.py的终端执行情况输出到当前文件夹下的test.out中(自动创建)。当然test.py和test.out都可以写绝对路径。
版权声明:本文为weixin_45850972原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。