0

我已经在本地机器上设置了一个 ubuntu 服务器,在该服务器上我使用 ssh bash 终端运行 bot.py 代码。我的 bot.py 从我的联系人中获取 url,并使用 docker 和 selenoid 访问网页。我已经设置了 docker 和 selenoid,它们运行良好。当我运行时:

$ sudo ./myscript_ro_run_bot.sh

[在 myscript_ro_run_bot.sh 内]:

#!/bin/bash
while true
do
  echo "running bot.py"
  nohup sudo python3 bot.py # nohup to run at background
  wait
  echo "bot.py finished"
  echo "running bot1.py"
  nohup sudo python3 bot1.py
  wait
  echo "bot1.py finished"
  .....
  echo "runnning bot5.py"
  nohup sudo python3 bot5.py
  sleep 10m
done

(我有 5 个 bot.py 文件)

我可以在 Telegram 的本地机器消息中看到(myscript_ro_run_bot.sh)做得很好,网站已经被访问并且我得到了奖励。即使在本地机器上,(myscript_ro_run_bot.sh)也可以 24/7 小时(无限期)运行。但我想 24/7 小时在服务器上运行。问题是当我关闭 ssh bash 窗口管理器时,我在本地机器 Telegram 上看到什么都没有发生,我没有收到消息。这是我在 5 或一个小时后再次使用 ssh 连接到我的服务器并且只有在重新连接后我才开始在电报中接收消息时的技巧。我可以使用命令在服务器中看到作业: $ htop 我的命令sudo python3 bot.py正在运行当我使用时:

$ sudo crontab -e

@reboot /home/user/myscript_ro_run_bot.sh >> /home/user/myscrit_to_run_bot.log

重新启动后,我使用 ssh 连接到服务器并从 myscrit_to_run_bot.log 获得结果:

running bot.py
bot.py finished
running bot1.py
bot1.py finished
running bot3.py




                                                                                               

但是重新连接后我没有收到任何电报消息。虽然我手动运行我的脚本并重新连接到服务器,但我在电报中收到消息。

有人可以帮我解决这个问题吗?sudo ./myscript_ro_run_bot.sh即使关闭 ssh bash 终端,我也想运行。如果您希望我提供更多详细信息,请commands也写(详细说明),因为我是编码和 linux 的新手。我感谢您的帮助

4

1 回答 1

0

尝试使用screentmux启动您的进程https://wiki.archlinux.org/title/Tmux

  1. tmux
  2. ./your_program
  3. 输入ctrl+b然后d

在此之后,您的进程将在后台运行,您可以关闭 ssh-connection。当您需要返回时,您可以运行tmux attach

于 2021-05-26T15:38:53.800 回答