使用 crontab 调用时屏幕无法正确加载

使用 crontab 调用时屏幕无法正确加载

我正在做什么

我一直在将一个设置迁移到另一个设置,复制配置并安装依赖项,我即将完成,直到屏幕无法按预期工作。

我有一个脚本,我一直在启动时初始化的独立屏幕上运行,设置实际上与旧机器上的设置相同,但仍然没有运气

我拥有的:

  • 一台 Ubuntu 20.04 机器
  • 包含以下内容的 bar.screenrc:
screen sh /path/to/file/foo.sh
  • foo.sh 包含以下内容:
#!/usr/bin/env python3.8
cd /path/to/file/
gunicorn --bind 0.0.0.0:5002 wsgi:app --log-level debug --error-logfile gunicorn.log
  • 一个 cronjob,内容如下:
@reboot /usr/bin/screen -c /path/to/file/bar.screenrc >> /path/to/file/cron.log 2>&1 -dmS API

场景

重新启动时没有出现新的会话,但是,如果我复制并粘贴该行(不带@reboot),它将按预期工作。

我尝试将 .screenrc 更改为/usr/bin/screen /usr/bin/sh /path/to/file/foo.sh,此更改确实会启动分离屏幕,但它不会运行 gunicorn 实例

这个完全相同的方案在旧设置上有效,并且过去在我的其他项目中也有效

免责声明

我知道可以用服务而不是屏幕来完成事情,这超出了当前项目和这个问题的范围。

相关内容