在 ubuntu VPS 后台 运行 python 脚本并保存日志的方法

Ways to run python script in the background on ubuntu VPS and save the logs

所以,我有一个 python 脚本,它不时将一些数据输出到终端。我试图 运行 在 Ubuntu VPS 上,即使我关闭了 SSH 连接并仍然在某处保留日志。

我使用以下方法保存日志:

python3 my_script.py >>file.txt

它工作完美,但是当我尝试使用

运行 这个过程时
nohup python3 my_script.py >>file.txt &

所以它 运行 在后台运行,在关闭 ssh 连接后,它似乎只保存从 my_script.py 输出的第一条日志。我也在 crontab 中尝试了 运行ning 这个,但结果是相似的 - 只保存了第一个日志。

有什么建议吗?我做错了什么?

我不明白你的意思"the first log"。也许是日志的第一行?

对于运行关闭SSH连接时在后台运行的东西,我更喜欢Linuxscreen,一个终端模拟工具,可以帮助你运行你的命令在一个子过程。有了它,您可以选择随时在前台查看您的输出,或者将您的进程 运行 留在后台。

用法(短)

screen 未包含在大多数 Linux 发行版中。安装它 (Ubuntu):

$ sudo apt-get install screen

运行 你的脚本在前台:

$ screen python3 my_script.py

你会看到它 运行宁。现在从此屏幕分离:按 Ctrl-A 键,然后按 Ctrl-D 键。您将返回 shell 之前 运行 上一个 screen 命令的位置。如果您需要切换回 运行ning 上下文,请使用 screen -r 命令。

此工具也支持多个并行 运行ning 进程。

有点奇怪

我试图将 stdoutstderr 重定向到带有 >>> 符号的文件。结果失败了。我也不是这方面的专家,也许您需要查看其手册页。但是,我倾向于直接写入 Python 脚本中的文件,并在控制台上输出一些必要的行。