【问题标题】:Ways to run python script in the background on ubuntu VPS and save the logs在ubuntu VPS上后台运行python脚本并保存日志的方法
【发布时间】:2019-10-30 06:12:04
【问题描述】:

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

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

python3 my_script.py >>file.txt

而且效果很好,但是当我尝试使用

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

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

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

【问题讨论】:

    标签: python bash ubuntu cron nohup


    【解决方案1】:

    我无法理解您所说的“第一个日志”是什么意思。也许是第一行日志?

    要在 SSH 连接关闭时在后台运行某些东西,我更喜欢 Linux screen,这是一个终端模拟工具,可帮助您在子进程中运行命令。有了它,您可以选择随时在前台查看您的输出,或者让您的进程在后台运行。

    用法(短)

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

    $ sudo apt-get install screen
    

    在前台运行您的脚本:

    $ screen python3 my_script.py
    

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

    这个工具也支持多个并行运行的进程。

    有点奇怪

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 2021-12-21
      • 2023-01-11
      相关资源
      最近更新 更多