如何使用 crontab 在 vi​​rtualenv 中自动启动 python 脚本 运行?

How to auto start python script running in virtualenv using crontab?

这就是我通常在 Ubuntu 20.04 上 运行 virtualenv 中的 python 脚本的方式。

source hibi/bin/activate
python -m hibiapi

现在我想创建一个 cronjob 使其在启动时自动启动 python 脚本,但我不知道正确的语法。谁能纠正我?

@reboot /var/www/api.adoreanime.com/htdocs/hibi/bin/python /var/www/api.adoreanime.com/htdocs/HibiAPI/hibiapi/ -m hibiapi

错误日志:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/var/www/api.adoreanime.com/htdocs/HibiAPI/hibiapi/__main__.py", line 8, in <module>
    from . import __file__ as root_file
ImportError: attempted relative import with no known parent package

使用 shell 脚本来执行此操作。

cd /your/module/location
source hibi/bin/activate
/full/path/to/python -m hibiapi

将上面的内容保存在脚本中,将其命名为 cron_run_hibiapi.sh。

通过运行使您的脚本成为可执行文件:

chmod +x /full/path/to/cron_run_hibiapi.sh

使用 crontab -e 打开 crontab 并将以下行添加到底部。

@reboot /bin/bash -c "/full/path/to/cron_run_hibiapi.sh" &

这是未经测试的,但我相信它应该有效。