python - 重新启动时在后台启动新 screen

标签 python shell ubuntu gnu-screen

我有电报机器人,我想在每次重新启动时自动运行它。我一直在使用 Screen 手动分离这个 python 脚本并将其留在后台。之前,我使用过 Screen 的命令 Ctrl+A和 D 分离 session 。
我试图学习一些屏幕命令,但它似乎不起作用。这是我到目前为止所拥有的:

#!/bin/sh
echo
cd "/home/mainuser/Documents/TelegramBot";
sleep 5
python3 telegram_bot.py
我已在 Documents/LaunchCommands 中将此设置为 command.sh。然后,在我的 crontab 中,我有:
@reboot screen -S TELEGRAM -X screen /home/mainuser/Documents/LaunchCommands/command.sh
但是当我重新启动计算机时,什么都没有运行。有什么可能出错的帮助吗?我希望拥有屏幕,打开名称为“TELEGRAM”的新 session ,在该 session 中启动该脚本,然后将其分离到后台,以便以后可以根据需要重新连接。有任何想法吗?谢谢您的帮助!
您还可以提出一些其他想法,如何让这个 python 脚本以某种方式在后台运行,我仍然可以与之交互。

最佳答案

好的,经过长时间的调试,并从其他地方询问,我是这样工作的:
在 crontab 中,我有一行:

@reboot sleep 5; /usr/bin/screen -dmS TELEGRAM /home/mainuser/Documents/LaunchCommands/command.sh &
而我的 command.sh 如下:
#!/bin/sh
echo
cd "/home/mainuser/Documents/TelegramBot";
python3 telegram_bot.py
现在一切都像魅力一样!

关于python - 重新启动时在后台启动新 screen ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69967285/

相关文章:

python - 当 Flask 中出现表单错误时,消息不会闪烁

linux - 如何剪切部分 grep 值

php - escapeshellarg 和 escapeshellcmd 有什么区别?

linux - 如何解决 Linux 上的 xbuild '.NETPortable,Version=v4.0,Profile=Profile344' 问题

python - 当模板确实存在时,为什么我在 Django 4.0 中收到 TemplateDoesNotExist 错误?

python - 尝试创建带有锁定的简单按钮推送播放

Python从文件中读取和写入 'ß'

java - Struts2 文件下载权限被拒绝

python - 如何备份/恢复 python virtualenv?

linux - awk 忽略打印单列。 sh-c