And*_*rew 162 io-redirection nohup
我经常使用该程序,nohup以便我的进程不受挂断的影响。所以如果我想让程序program免于挂断,我使用命令
nohup program &
Run Code Online (Sandbox Code Playgroud)
其中,&并将其进程在后台运行。
启动时,nohup给我信息:
nohup:将输出附加到 `nohup.out'
有没有办法将输出发送到文件以外的文件nohup.out?我经常想使用 运行同一目录中的多个进程nohup,但如果我这样做,所有输出都会集中在一个nohup.out文件中。
手册页(例如,here)似乎没有指定日志文件的选项。你能确认一下吗?另外,您对我如何解决这个问题有什么想法吗?
lk-*_*lk- 176
GNU coreutilsnohup手册页表明您可以使用普通重定向:
如果标准输入是终端,则从 /dev/null 重定向它。如果标准输出是终端,则尽可能将输出附加到“nohup.out”,否则附加“$HOME/nohup.out”。如果标准错误是终端,则将其重定向到标准输出。要将输出保存到 FILE,请使用“nohup COMMAND > FILE”。
编辑:我一开始没有阅读你的链接;您可能有不同版本的nohup,尽管本节建议您仍然可以使用普通重定向:
nohup.out The output file of the nohup execution if
standard output is a terminal and if the
current directory is writable.
Run Code Online (Sandbox Code Playgroud)
您可以将标准输出和标准错误重定向到不同的文件:
nohup myprogram > myprogram.out 2> myprogram.err
Run Code Online (Sandbox Code Playgroud)
或到同一个文件:
nohup myprogram > myprogram.out 2>&1
Run Code Online (Sandbox Code Playgroud)
joa*_*aes 14
好吧,如果你正在使用 python 并且已经搜索了很长时间,但无法使其工作。干得好:
nohup python -u my_script.py > program.out 2>&1 &
原因:Python 在写入输出之前缓冲,-u禁用该行为。
更新:您还可以设置环境。变种 PYTHONUNBUFFERED=1 对于同样的行为。
| 归档时间: |
|
| 查看次数: |
364205 次 |
| 最近记录: |