python - 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 -tulw
grep 查找服务器应该运行的端口的结果。
3)根据步骤(2)的结果,我们要么需要 sleep for'x'
再次几分钟,或重新启动服务器(并可能完全停止任何预先运行的东西)。
最初,我认为这是一个相当不错的主意,因为我们不能总是监控服务器。
解决方案
如果我理解正确,这是一个非生产 Django 应用程序。您可以像以前一样使用 Django 的开发服务器运行测试服务器python manage.py runserver 0.0.0.0:8000
。
像monit(https://mmonit.com/monit/)或supervisord(http://supervisord.org/)这样的想法是为了做你所描述的 - 监控一个进程并在必要时重新启动它,但你也可以只使用可能每分钟运行一次的 cron 作业。在 cron 作业中,您:
- 检查您的进程是否仍在运行或仍在侦听端口 8000。
- 如果已经运行则中止。
- 如果停止或未侦听端口 8000,则重新启动。
推荐阅读
- django - 如何在 django 中使用 vue?
- c - 多个 dlopen 和 RTLD_NEXT
- python - 我的素数查找程序陷入无限循环
- python - 在python中通过多行/列键值匹配获得比率的任何快捷方式?
- regex - 版本字符串的 POSIX 正则表达式
- java - 整数字符串检查器
- c# - “不允许从 MonoBehaviour 构造函数调用加载”在不从 MonoBehaviour 继承的脚本上
- c# - 在 VS2015/C# 中使用存储过程创建 ADO.NET 只读 SQL Server 数据集
- php - 无法从数据库中获取单个字段
- css - 如何设置滚动的大小来扩大屏幕的大小?