想到用nohup保持进程运行,试了几次nohup.out没给出share link,后来查到print不是即时的,把运行的命令加上-u解决:
时间: 2024-10-12 08:11:35 浏览: 14
当你使用`nohup`命令来让程序在后台持续运行并忽略输入挂断信号时,通常会生成一个名为`nohup.out`的日志文件,用于记录程序的标准输出和错误。如果`nohup.out`没有自动创建或者没有包含预期的内容,可能是由于`print`语句或其他非立即输出的原因。
`print`是一个Python内置函数,在某些交互式环境中,它的输出不会立即显示出来,而是需要显式地通过`\n`或`.flush()`方法强制刷新。所以在使用`nohup`运行Python脚本时,如果直接有`print`语句,输出可能不会立刻出现在日志文件中。
为了解决这个问题,你需要确保将那些你想记录到日志中的输出转换成可以被`nohup`捕获的形式,比如使用`sys.stdout.write()`或者`sys.stderr.write()`代替`print`,然后手动添加换行符。另外,如果你想要立即看到输出,可以在命令行中加上 `-u` 参数,这会让`nohup`立即将标准输出和标准错误定向到终端,而不是默认的日志文件。
修改后的命令示例:
```bash
nohup python your_script.py -u > nohup.out 2>&1 & disown
```
这里的`2>&1`表示同时将标准输出和标准错误重定向到`nohup.out`。最后,`disown`命令是为了防止终端关闭后任务也随之结束。
相关问题
nohup: nohup: appending output to ‘nohup.out’appending output to ‘nohup.out’是什么意思
nohup是一个Linux/Unix命令,它可以使被启动的命令不受终端的影响,即使用户注销登录,被启动的命令也会在后台持续执行。当你使用nohup命令启动一个程序时,输出信息会被重定向到当前目录下的nohup.out文件中,所以"appending output to 'nohup.out'"就是告诉你程序的输出信息被追加到了nohup.out文件中。
例如,你可以在终端输入"nohup python my_script.py &"来启动一个Python脚本,并在后台持续运行。如果不加"nohup"和"&",当你退出终端时,程序就会停止运行。
使用nohup 报错 nohup: appending output to 'nohup.out'
您好!关于您提到的问题,nohup: appending output to 'nohup.out' 是在使用 nohup 命令时的一种常见提示信息。它表示输出将被附加到 nohup.out 文件中。
这个提示信息并不是错误,而是一个通知。nohup 命令用于在后台运行程序,并将输出保存到 nohup.out 文件中。当您运行命令时,如果当前目录中没有名为 nohup.out 的文件,它会自动创建一个。如果已经存在 nohup.out 文件,命令会将输出内容附加到该文件末尾。
您可以通过以下方式来解决这个问题:
1. 如果您不关心输出内容,可以将输出重定向到/dev/null,命令如下:
```
nohup command > /dev/null 2>&1 &
```
这样,输出将不再附加到 nohup.out 文件中,而是被丢弃。
2. 如果想要将输出保存到不同的文件中,可以使用下面的命令:
```
nohup command > custom_output.log 2>&1 &
```
这样,输出将被附加到 custom_output.log 文件中。
希望这些信息能够帮助到您!如果您有任何更多的问题,请随时提问。
阅读全文