tail -f nohup.out 给出无法打开‘nohup.out’进行读取:没有此文件或目录

tail -f nohup.out 给出无法打开‘nohup.out’进行读取:没有此文件或目录

我使用 ssh 协议连接到远程服务器并启动此命令以便远程运行我的 python 脚本:

nohup python3.8 -u sab.py > log_15_09_2023.txt &

这很好用,因为如果我输入,top我就可以看到我的脚本当前正在运行。

但是如果我输入

tail -f nohup.out

我得到:

tail:无法打开“nohup.out”进行读取:没有此文件或目录 tail:没有剩余文件

所以我尝试了tail -f ./nohup.out但遇到了同样的错误。

如果我输入,pwd我会得到/home/alex;如果我打印,ls -i -l我会得到:

total 92
3414135 -rw-rw-r-- 1 alex alex 25538 Sep 15 16:41 log_15_09_2023.txt
3409134 -rw-r--r-- 1 alex alex   522 Sep 13 17:15 requirements.txt
3414133 -rw-r--r-- 1 alex alex  9585 Sep 15 13:18 sab.py
3407895 drwxrwxr-x 7 alex alex  4096 Sep 13 17:04 venv

我错过了什么?

答案1

man 1 nohup[强调我的]:

[…]如果标准输出是终端,nohup.out则尽可能将输出附加到终端,$HOME/nohup.out否则。如果标准错误是终端,则将其重定向到标准输出。要将输出保存到 FILE,请使用nohup COMMAND > FILE

这意味着当标准输出是终端时,将使用默认文件名nohup.out。 在您的例子中,它不是终端,而是名为 的常规文件log_15_09_2023.txt

通过重定向到log_15_09_2023.txtnohup使用了这个确切的文件代替nohup.out。您没有重定向标准错误,它是一个终端,因此nohup自动将其重定向到标准输出,即也重定向到此文件。

你应该tail -f nohup.out调用:

tail -f log_15_09_2023.txt

它会起作用,文件就在那里。

相关内容