写一个shell脚本启动服务器

使用shell脚本写一个一键启动服务器


####由于我们服务器使用的docker, nginx和 redis 还有mysql都是docker启动好的

我们项目使用supervisor进程管理工具,需要提前配置,但是不知道什么原因,以前的环境配置出了问题,supervisor不能用命令来控制代码重启和暂停,只能手动杀掉进程, 所以每次都要敲一些命令进环境啊,杀进程什么的。。很麻烦,所以想搞个shell 每次就可以直接运行

代码如下

首先声明变量为查找带有python的正在运行

wc -l # 统计数量
#!/usr/bin/env bash
python_num=`ps aux | grep python | wc -l`
uwsgi_num=`ps aux | grep uwsgi | wc -l`
# 声明查找进程的变量

查找进程:

  awk '{print $2}'  # 打印第二个字段
  xargs # 横向输出
  # 第二个字段是pid号 横向输出 kill
# 判断python的进程是否大于1,如果大于杀掉所有进程
if test "$python_num" -gt "1" ;then
    ps aux | grep -w python | awk '{print $2}' | xargs kill -9
fi
# 判断uwsgi进程,同理
if test "$uwsgi_num" -gt "1" ;then
    ps aux | grep -w uwsgi | awk '{print $2}'| xargs kill -9
fi

以下是我们项目启动方式, 上面的代码才是核心所在

# 进入虚拟环境
cd /opt/runningcloud/fxxxxxk/fxxxxxd
source env/bin/activate
# 运行
cd /opt/runningcloud/fxxxxxxk/fxxxxxxd/fxxxxd/extra_server
nohup python recvdelmessage.py > /dev/null 2>&1 &
# 启动supervisor运行服务器

cd /opt/runningcloud/baseenv
supervisord -c supervisord/supervisord.conf

最后 记得给文件加上权限 不然会报错

猜你喜欢

转载自blog.csdn.net/qq_19461647/article/details/82740634