在 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 进程。
有点奇怪
我试图将 stdout
或 stderr
重定向到带有 >
或 >>
符号的文件。结果失败了。我也不是这方面的专家,也许您需要查看其手册页。但是,我倾向于直接写入 Python 脚本中的文件,并在控制台上输出一些必要的行。
所以,我有一个 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 进程。
有点奇怪
我试图将 stdout
或 stderr
重定向到带有 >
或 >>
符号的文件。结果失败了。我也不是这方面的专家,也许您需要查看其手册页。但是,我倾向于直接写入 Python 脚本中的文件,并在控制台上输出一些必要的行。