Linux设置所有项目按顺序依次启动和开机启动
Linux服务器有三个项目,分别是网站前端show_sir_nuxt、网站后端show-cms、数据接口gosh
Linux的目录如下:
show_sir_nuxt和show-cms是Nuxt项目,通过pm2守护进程启动
gosh是springboot项目jar包,通过nohup守护进程启动
一、设置所有项目按顺序依次启动
1、创建启动项目脚本start_all.sh,脚本内容如下
#!/bin/bash
echo "=============start=================="
#启动Nuxt项目
cd /usr/local/laoxu_zh/project_run/show_sir_nuxt/ && pm2 start npm --name "show_sir_nuxt" -- run start
cd /usr/local/laoxu_zh/project_run/show-cms/ && pm2 start npm --name "show-cms" -- run start
#启动springboot项目
cd /usr/local/laoxu_zh/project_run/gosh/
JAVA_OPTS="-Dfile.encoding=utf-8 -Xms1024m -Xmx1024m -XX:+PrintGCDetails -Xloggc:/var/log/gc.log -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/heap.bin -Duser.timezone=Asia/Shanghai"
nohup java $JAVA_OPTS -jar gosh-service-1.0-gosh.jar --server.port=8080 >info.log 2>error.log &
echo "=============end===================="
2、项目启动,进入启动项目脚本所在目录,执行如下命令
[[email protected] project_run]# ./start_all.sh
3、依次检查,所有项目启动成功
二、设置项目开机启动
1、执行如下脚本
[[email protected] gosh]# cd /etc/rc.d/
[[email protected] init.d]# ls -rlt
[[email protected] init.d]# vi rc.local
在 rc.local 文件中添加如下内容(截图中圈定的内容)
kk_start_all.sh 内容如下
#!/bin/bash
echo "================start=================="
#启动redis集群
cd /usr/local/laoxu_zh/redis_down/redis-3.2.4/
redis-server redis_cluster/7000/redis.conf
redis-server redis_cluster/7001/redis.conf
redis-server redis_cluster/7002/redis.conf
#设置全局环境变量
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#启动springboot项目
cd /usr/local/laoxu_zh/project_run/gosh/
JAVA_OPTS="-Dfile.encoding=utf-8 -Xms1024m -Xmx1024m -XX:+PrintGCDetails -Xloggc:/var/log/gc.log -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/heap.bin -Duser.timezone=Asia/Shanghai"
nohup java $JAVA_OPTS -jar gosh-service-1.0-gosh.jar --server.port=8080 >info.log 2>error.log &
echo "================end==================="
特别注意:设置全局环境变量这个步骤不能省,因为开机时在 /etc/profile 配置的java环境变量可能还未生效
2、赋可执行权限,Centos7中 rc.local 默认没有执行权限,赋予执行权限后,Linux开机会自动执行文件内容
[[email protected] init.d]# chmod +x kk_start_all.sh
3、重启Linux服务器
特别注意:如果使用 pm2 进行进程守护,执行一次 pm2 startup (# 创建开机自启动命令),即可开机启动,但是pm2进行的进程守护,即使执行了 pm2 delete all 删除了所有进程,但是如果系统重启,依然会恢复,这也pm2开机启动不好的地方
[[email protected] init.d]# shutdown -r now
4、依次检查,所有项目启动成功