怎么进入项目后台服务器,项目部署并常驻在服务器后台

2023-11-10

31f52bcb5c95e4b8c7cdb68290d4aaa4.png

前言

上一次文章是自己的博客项目正式上线,这次分享:“怎么让自己写好的项目常驻与服务器后台!”

在这之前,先了解一下服务器部署项目的一些环境依赖问题。服务器部署项目时,你的项目用到了什么环境,就要在服务器上安装相应的环境依赖 ,一般常要安装的就是MySQL、JDK、Tomcat等,它们的具体安装过程在我的CSDN博客都有,这里不再详细说明啦,这三个环境一般都是Java开发的项目部署时需要安装的,还有其它一些项目,比如是用Python开发的话,你的服务器就需要再安装一个Python环境。

SpringBoot框架出来之前,Java开发的web项目(和Maven等项目)一直都是打war包,将打好的war包上传到你安装的Tomcat的webapps目录下,只要你的Tomcat一直是启动着的,那你的项目就随时都可以访问。

我的个人博客是使用的SpringBoot框架,SpringBoot它集成了Tomcat,所以部署时可以不用安装Tomcat,它打包后得到的是一个JAR包,只要安装JDK和MySQL就可以了(我没有用到Redis,反之就需要再安装Redis),但这种JAR包有一个问题就是:你关闭Xshell(我使用的是Xshell,也还有其他一些远程管理工具)后,你的项目也被关闭了,它并没有常驻服务器后台。

在实际中,做好的项目是需要一直常驻服务器后台的,我的这个项目就是一直常驻服务器后台,只要我的服务器没崩,输入以下网址随时都可以访问:

http://vogos.cn/

昨天刚刚上线了3.0版本,新增了时间轴功能,修复了照片墙图片无法显示问题,欢迎小伙伴们访问啊

上面说了那么多废话,就当是知识科普了。下面我以具体的示例演示:使SpringBoot项目,常驻服务器后台的过程和遇到的坑。

使服务长存于服务器

在你上传的项目同一级目录新建下面三个脚本内容

脚本中的 blog.jar 为打好的项目jar包

start.sh

#!/bin/bash

nohup java -jar blog.jar --server.port=80 &

stop.sh

#!/bin/bash

PID=$(ps -ef | grep blog.jar | grep -v grep | awk '{ print $2 }')

if [ -z "$PID" ]

then

echo Application is already stopped

else

echo kill $PID

kill $PID

fi

run.sh

#!/bin/bash

echo stop application

source stop.sh

echo start application

source start.sh

之后就可以通过./run.sh来启动和关闭项目了,这里的启动会使项目常驻与服务器后台

示例

# 对当前目录下的所有.sh文件具有读写权限

chmod u+x *.sh

fb793a419c09a2ee0f45011a45e472be.png

1ec6cf080da7b813c89ab44acffa0462.png

项目部署成功

f2b568a1b8d14ff5286574b91ebef073.png

http://vogos.cn

关掉Xshell,测试访问成功!

3288bca67e6422eac38680d9a9033574.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么进入项目后台服务器,项目部署并常驻在服务器后台 的相关文章

  • 服务器安装文件共享软件权限,服务器共享文件权限

    服务器共享文件权限 内容精选 换一换 文件系统创建完成后 用户需在客户端挂载文件共享 在本地共享目录和CSG的文件共享建立映射 通过操作本地的目录实现对CSG共享目录的操作 实现数据实时上云管理 本章节主要介绍在Windows Server
  • 面试了30多家大厂后,整合出这份1658 页《Java 面试突击核心讲》

    面试神技 主要包含 Java 基础 JVM 多线程 MySQL Spring SpringBoot SpringCloud 分布式 Dubbo Mybatis Redis 网络 Linux MQ Zookeeper Netty 大数据 算法
  • 面试系列之JVM

    说说JVM的内存模型 方法区 存储已被虚拟机加载的类信息 常量 静态变量 即时编译后的代码等数据 堆 存放对象实例 几乎所有的对象实例都要在堆上分配 程序计数器 当前线程所执行的字节码的行号指示器 虚拟机栈 描述的是Java方法执行的内存模
  • Java如何使用dom4j获取,添加,删除,查找,设置Element节点呢?

    转自 Java如何使用dom4j获取 添加 删除 查找 设置Element节点呢 下文笔者讲述DOM4J操作Element节点的示例分享 如下所示 获取文档的根节点 Element rootElm document getRootEleme
  • 'gbk' codec can't decode byte 0x91 in position 2: illegal multibyte sequence的解决

    今天在使用Pycharm运行程序的时候 在对文件进行分割时 出现此问题 当时代码是 f open 对话 txt r 运行就会报错 在上网搜索后发现 原来问题是出现在字符编码上 改成 f open 对话 txt r encoding UTF
  • 程序员大大们,平时都喜欢逛什么技术论坛?

    先安排个工作 再带你学技术 闲来无事戳一戳 有小惊喜 1 CSDN 中国开发者网络 https mp csdn net 中国专业IT社区 为中国软件开发者提供知识传播 在线学习 职业发展等全生命周期服务 2 GitHub 开发者最最最重要的
  • cmd中如何进入某文件目录

    步骤如下 1 按下键盘的 win R 组合键 或者是点击开始菜单中的 运行 选项 来打开运行窗口 然后在打开的运行窗口中输入 CMD 回车 2 然后就打开了CMD命令窗口了 3 如 要进入F盘中的某个目录 则输入 F 回车 然后就进入了F盘
  • Qt 多窗口的调用

    方法一 用于一个父窗口和多个子窗口的处理 不知道怎么用于处理子窗口的子窗口的处理 1 建立一个父窗口 然后建立一个QDialog类型的窗口作为子窗口 2 在父类窗口建立子窗口的对象 void 父类名 on pushButton clicke
  • 红黑树之歌

    译文 我看到一个全新的节点 我想把它涂成黑色 我们需要一棵平衡的树 我们得把它漆成黑色 我想在log n的时间内找到键 就这样 旋转子树可以是一个球 我看到一个全新的节点 我想把它涂成黑色 不能有很多红节点 我们必须把它们涂成黑色 不幸的是
  • TortoiseGit 如何回退到以前的版本?

    要在 TortoiseGit 中回退到以前的版本 可以按照以下步骤进行操作 在资源管理器中 右键单击你的 Git 仓库文件夹 然后选择 TortoiseGit 再选择 Show log 这将打开 TortoiseGit 的日志界面 在日志界
  • 【华为OD】

    华为OD试题注意事项 使用合适的编程语言 在华为OD机试中多数情况下使用C 或Java 按照题目要求进行编码 仔细阅读题目描述并理解要求 在编码前可以进行伪代码编写或画流程图有助于理解和排除逻辑错误 注意代码的规范性 注重代码的可读性和可维
  • 测试架构师的职责及困境

    架构师 架构师来自于建筑学 英文是Architect 建筑工程中的架构师是负责整体建筑的架构设计 因此从宏观上看 软件行业的架构师也类似 是负责整体架构的设计 在软件工程中架构师是一个团队的技术的领头者 主要工作内容除去对项目的整体设计和规
  • redis一主二从时,主中读取不到从的信息

    一 错误情境描述 1 主 6379 2 从1 6380 3 从2 6381 二 错误原因 主中带有密码 三 解决办法 1 将主中配置文件中注释掉代码 2 在从的配置文件中添加主的密码 当master服务设置了密码保护时 slav服务连接ma
  • uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】

    uniapp 微信小程序 用户隐私新规相关代码调整 vue3 ts uView框架 官方公告地址 https developers weixin qq com community develop doc 00042e3ef54940ce85
  • elementUI中的$confirm调换两个按钮的位置

    confirm默认两个按钮的位置为 取消在前 确认在后 而我们在项目中经常要求 确认在前 取消在后 所以需要调换两个按钮的位置 修改后的样式如下图所示 用css样式调换两个按钮的位置 代码如下 给取消按钮添加样式 this confirm
  • 关于取模运算的特点与应用

    对于取模 取余 运算 比如A M 结果永远都是在 0 M 1 之间循环 并且如果A lt M 则结果和没有进行取模运算一样 这一特点有很多应用场景 1 最常见的就是对2取模来判断奇偶数 2 循环队列中通过对最大容量取模来控制数组下标 防止索
  • 资源记录

    AE插件 https zhuanlan zhihu com p 26304609 GLSL内置函数使用 https blog csdn net jeffasd article details 77989274 ops request mis
  • js中forEache()和Map()的区别

    定义剖析 我们首先来看一看MDN上对Map和ForEach的定义 forEach 针对每一个元素执行提供的函数 executes a provided function once for each array element map 创建一
  • 地埋式积水在线监测系统助力城市内涝解决方案

    一 方案背景 随着我国城镇化快速发展 城市建设产生的大量地面硬底化 大部分的降雨将形成地表径流 仅有少量雨水渗入地下 导致城市内涝等一系列问题 当前 全国多地发生洪涝 我国南北方全面进入主汛期 与往年相比 今年的汛期不仅提前4天 而且汛情呈

随机推荐