springboot 的配置文件中, 配置文件的名字都有各自的意义跟用途
dev 开发环境
prod 生产环境(默认)
test 测试环境
加载指定配置文件 --spring.profiles.active=prod
springboot 加载 jar 包的方式有
- // 直接在控制台进行启动, 缺点就是控制台关闭项目也就关闭了.
- java -jar bootdo.jar
- // 这种方式可以运行在后台, 但是如果推出了 shell 的话, 那也会挂
- java -jar /bootdo-2.0.0.jar> bootdolog.file 2>&1 &
- // 加上 nohup 的话, 即使推出 shell, 也不影响.
- nohup java -jar /bootdo-2.0.0.jar> bootdolog.file 2>&1 &
解释
nohup 表示永久运行.& 表示后台运行
> 代表重定向到哪里
1 表示 stdout 标准输出, 系统默认值是 1, 所以 ">/dev/null" 等同于 "1>/dev/null"
2 表示 stderr 标准错误
nohup ./mqnamesrv>/home/cxb/mqnamesrv.out 2>&1 & 即标准输出到 mqnamesrv.out 中, 接着, 标准错误输出重定向等同于标准输出, 输出到同一文件中.
在服务器上通过如下方式启动成功之后, 如果涉及到重新启动, 那么你需要通过 ps -ef | grep bootdo 查询到进程号, 再通过 kill -s 9 ${pid} 进行杀死再重新启动, 很是麻烦.
nohup java -jar /bootdo-2.0.0.jar> bootdolog.file 2>&1 &
一两次还好说, 如果涉及到多次, 那就有些崩溃了.
这样, 可以通过编写一个 shell 脚本来进行启动 (start) 停止 (stop) 重启 (restart) 操作, 一步到位, 方便高效
在自定义目录创建 wss.sh 脚本, 编辑内容如下.
- #!/bin/bash
- #这里可替换为你自己的执行程序, 其他代码无需更改
- APP_NAME=websocketserver-0.0.1-SNAPSHOT.jar
- #使用说明, 用来提示输入参数
- usage() {
- echo "Usage: sh 脚本名. sh [start|stop|restart|status]"
- exit 1
- }
- #检查程序是否在运行
- is_exist(){
- pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
- #如果不存在返回 1, 存在返回 0
- if [ -z "${pid}" ]; then
- return 1
- else
- return 0
- fi
- }
- #启动方法
- start(){
- is_exist
- if [ $? -eq "0" ]; then
- echo "${APP_NAME} is already running. pid=${pid} ."
- else
- nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME> /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &
- echo "${APP_NAME} start success"
- fi
- }
- #停止方法
- stop(){
- is_exist
- if [ $? -eq "0" ]; then
- kill -9 $pid
- else
- echo "${APP_NAME} is not running"
- fi
- }
- #输出运行状态
- status(){
- is_exist
- if [ $? -eq "0" ]; then
- echo "${APP_NAME} is running. Pid is ${pid}"
- else
- echo "${APP_NAME} is NOT running."
- fi
- }
- #重启
- restart(){
- stop
- start
- }
- #根据输入参数, 选择执行对应方法, 不输入则执行使用说明
- case "$1" in
- "start")
- start
- ;;
- "stop")
- stop
- ;;
- "status")
- status
- ;;
- "restart")
- restart
- ;;
- *)
- usage
- ;;
- esac
在标红接头行配置启动命令.
之后就可以通过 wss.sh start | stop | restart 实现启动, 停止, 重启操作了.
补充下
sh xxx.sh 与./xxx.sh 区别
sh xxx.sh 是不需要有执行权限
./xxx.sh 是需要有执行权限的, 可以通过 chmod +x xxx.sh 赋予权限
来源: https://www.cnblogs.com/c-h-y/p/10460061.html