首页 > 解决方案 > BASH:监控/维护服务器

问题描述

我有一个 Django AWS 服务器,我需要在周末继续运行它才能对其进行评分。我通常使用 PuTTY 从 SSH 启动它:

python manage.py runserver 0.0.0.0:8000

我最初想制作一个 bash 脚本来完成启动服务器、监视它并在需要时使用它重新启动它的任务,但被告知它不会工作。为什么?

1)启动服务器python manage.py runserver 0.0.0.0:8000 &用于将其发送到后台

2)睡眠几分钟后<some integer length 'x'>,检查服务器是否未启动并使用ss -tulwgrep 查找服务器应该运行的端口的结果。

3)根据步骤(2)的结果,我们要么需要 sleep for'x'再次几分钟,或重新启动服务器(并可能完全停止任何预先运行的东西)。

最初,我认为这是一个相当不错的主意,因为我们不能总是监控服务器。

编辑:检查ss -tulw | grep 8000在运行服务器时是否正确抓取服务器:

在此处输入图像描述

标签: pythondjangobashport

解决方案


如果我理解正确,这是一个非生产 Django 应用程序。您可以像以前一样使用 Django 的开发服务器运行测试服务器python manage.py runserver 0.0.0.0:8000

像monit(https://mmonit.com/monit/)或supervisord(http://supervisord.org/)这样的想法是为了做你所描述的 - 监控一个进程并在必要时重新启动它,但你也可以只使用可能每分钟运行一次的 cron 作业。在 cron 作业中,您:

  1. 检查您的进程是否仍在运行或仍在侦听端口 8000。
  2. 如果已经运行则中止。
  3. 如果停止或未侦听端口 8000,则重新启动。

推荐阅读