Monthly Archives: June 2024


[TOC] 前言 由于买的这个阿里云ECS是最低配的(2核1G内存),小落同学的后台进程经常会被莫名奇妙的杀掉,因此拟给加个看门狗保护下。整个保护分成两部分:1)进程检测脚本:watchdog.sh2)将检测脚本加入crontab 具体步骤如下。 进程检测脚本:watchdog.sh 利用一个配置文件,将小落同学绑定的端口及进程启动脚本在配置文件里配置好。然后再用一个脚本去telnet这个端口,若telnet成功,说明进程还活着,否则就是进程没了,需调用启动脚本进行启动。 配置文件 小落同学总共有两个进程,分别是backend和frontend,各使用8000端口和3000端口。文件名:watchdog.list 脚本内容 文件名:watchdog.sh 将检测脚本加入crontab 查看下当前cronjob列表。 查看命令 结果 加入小落同学相关的进程监控脚本 用crontab -e编辑,并加入小落同学相关的进程监控脚本,并将其设置为每分钟都检测一下。 查看当前back-end进程情况 返回8000端口进程情况 手动杀进程,看看能不能恢复? 杀进程后,等一会儿再看看进程有没有重新启来? 其它 查看crond的日志 crond的日志默认应该是在/var/log/cron里若是进程没启动起来的话,可以看下crond的日志,看看可能是什么原因 项目运行环境切换 1)conda环境切换:由于我给小落同学后台项目专门搞了一个虚拟环境,手动启动的时候都是先手动conda activate xiaoluo来切换一个环境,然后再去执行启动小落同学,但这个在crontab里写起来比较麻烦,因此将相关的环境切换移到start_backend.sh,并在这个脚本里去启动小落同学后台。2)npm环境切换:小落同学的前台其实也是类似,小落同学的前台的npm版本也是一个比较比较老的版本(v16.14.2),启动前需要nvm use v16.14.2切换一下npm版本,相关的处理都不放到crontab里,而转移到一个专门的启动脚本:start_frontend.sh。

给小落同学后台加个进程保护