nohup 的用途就是让提交的命令忽略 hangup 信号。让我们先来看一下 nohup 的帮助信息
NOHUP(1) BSD General Commands Manual NOHUP(1)
NAME
nohup -- invoke a utility immune to hangups
SYNOPSIS
nohup [--] utility [arguments]
DESCRIPTION
The nohup utility invokes utility with its arguments and at this time sets the signal SIGHUP to be ignored. If the
standard output is a terminal, the standard output is appended to the file nohup.out in the current directory. If stan-
dard error is a terminal, it is directed to the same place as the standard output.
Some shells may provide a builtin nohup command which is similar or identical to this utility. Consult the builtin(1)
manual page.
可见,nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名。
Lawrences-MBP:~ Lawrence$ nohup python test.py &
另外,python在print时,有时会等待缓冲区满了才打印数据,这时使用 python -u 可以强制stdin,stdout和stderr变成无缓冲,立即输出。