精华内容
下载资源
问答
  • 通用Shell脚本,可以优雅的启动/关闭/重启/JAVA服务
    万次阅读
    2020-09-20 19:18:56

    shell脚本 service.sh,如果没有脚本执行权限先使用 chmod 777 service.sh 附加权限。

    1. sh service.sh start            启动服务

    2. sh service.sh stop            关闭服务

    3. sh service.sh restart        重启服务

    4. sh service.sh status         查看状态

    #!/bin/bash
    #你的java服务包
    AppName=/opt/java/demo.jar
    
    #JVM参数
    JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
    APP_HOME=`pwd`
    LOG_PATH=$APP_HOME/logs/$AppName.log
    
    if [ "$1" = "" ];
    then
        echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
        exit 1
    fi
    
    if [ "$AppName" = "" ];
    then
        echo -e "\033[0;31m 未输入应用名 \033[0m"
        exit 1
    fi
    
    function start()
    {
        PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
    
    	if [ x"$PID" != x"" ]; then
    	    echo "$AppName is running..."
    	else
    		nohup java -jar  $JVM_OPTS $AppName > /dev/null 2>&1 &
    		echo "Start $AppName 服务启动成功..."
    	fi
    }
    
    function stop()
    {
        echo "Stop $AppName"
    	
    	PID=""
    	query(){
    		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
    	}
    
    	query
    	if [ x"$PID" != x"" ]; then
    		kill -TERM $PID
    		echo "$AppName (pid:$PID) exiting..."
    		while [ x"$PID" != x"" ]
    		do
    			sleep 1
    			query
    		done
    		echo "$AppName 服务已停止..."
    	else
    		echo "$AppName 服务正在停止..."
    	fi
    }
    
    function restart()
    {
        stop
        sleep 2
        start
    }
    
    function status()
    {
        PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
        if [ $PID != 0 ];then
            echo "$AppName 服务正在运行中..."
        else
            echo "$AppName 服务已停止运行..."
        fi
    }
    
    case $1 in
        start)
        start;;
        stop)
        stop;;
        restart)
        restart;;
        status)
        status;;
        *)
    
    esac
    

    更多相关内容
  • 所以需要先搭建Java环境,再将Java服务部署上去。 对腾讯企业邮箱免密单点登录感兴趣的可以到官方开发者中心研究:https://exmail.qq.com/qy_mng_logic/doc#10036 一:Java环境配置 1.1 安装并配置JDK JDK下载,因为...

    前言

    最近做一个项目,实现用户免密单点登录腾讯企业邮箱https://exmail.qq.com/

    项目是架构是 Springboot + Redis类型,部署环境是一台未配置任何开发环境的 Windows 服务器。所以需要先安装配置 JDK,安装 Redis,再将 Springboot 服务部署上去。

    对腾讯企业邮箱免密单点登录感兴趣的可以到官方开发者中心研究:https://exmail.qq.com/qy_mng_logic/doc#10036

    一、JDK 安装配置

    因为项目用到的是 Springboot2.0 版本,所以需要 JDK1.8 以上版本。
    官网下载:https://www.oracle.com/java/technologies/javase-downloads.html
    百度云下载:链接:https://pan.baidu.com/s/1fg2E2ecUziT2AgO2iit-yw 提取码:l7ju

    1.1 JDK 安装

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    1.2 JDK 环境变量配置

    鼠标右键桌面计算机图标,点击属性
    在这里插入图片描述
    选择点击高级系统设置
    在这里插入图片描述
    选择点击环境变量
    在这里插入图片描述
    新建系统变量,变量名为JAVA_HOME,变量值为你安装的JDK位置。
    在这里插入图片描述
    编辑系统变量Path,在变量值末尾加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
    在这里插入图片描述
    新建系统变量,变量名为classpath,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar
    在这里插入图片描述
    最后全部保存确定。然后在cmd命令行窗口,输入 java -version 命令,出现下面结果则表示 JDK 安装并配置完成。
    在这里插入图片描述

    二、安装 Redis

    百度云下载:链接:https://pan.baidu.com/s/1IUz-RPXw9NmSysMDqJNPcQ 提取码:sshi

    下载后解压到你想安装的目录下
    在这里插入图片描述

    2.1 前台启动 Redis 服务

    在安装目录下启动 cmd 命令行窗口,然后输入redis-server.exe redis.windows.conf命令,回车。如果出现一个方形图标,即服务启动成功。

    不过此种启动方式,是前台启动方式,只创建 Redis 临时服务,不会在 window Service 列表出现 Redis 服务名称和状态,此窗口关闭,Redis 服务会自动关闭。

    在这里插入图片描述

    通过客户端连接测试,在安装目录下再启动一个 cmd 命令行窗口,然后输入redis-cli.exe命令,回车。如下则连接成功。

    在这里插入图片描述

    2.2 修改端口和密码

    在Redis的安装目录下找到 redis.windows-service.conf 文件,用文本编辑器打开。找到 port 所在行,把默认的端口更改,例如改为6380。找到 requirepass 所在行,回车另起一行,例如输入 requirepass 123456 ,这样Redis密码就为123456,设置好保存后文件,重启redis服务。

    在这里插入图片描述
    在这里插入图片描述

    客户端连接测试。输入 redis-cli.exe -p 6380 连接,此时我们随便输入命令例如列出所有键命令 keys * ,会报错,因为我们还未输入密码验证。再输入 auth 123456 ,123456是我们刚设置的Redis密码。就可以执行命令了。

    在这里插入图片描述

    2.3 服务方式安装启动

    前台方式启动redis服务,则需要保持打开命令行窗口启动着。窗口一关则服务停止。以下演示将 Redis 设置为 Windows下的服务,并在后台启动。

    首先将 Redis 注册为服务,在 Redis 安装目录下启动一个cmd命令行窗口,然后输入 redis-server.exe --service-install redis.windows.conf --loglevel verbose 命令,回车。注意!!!一定要把临时服务关闭,否则安装不上。

    在这里插入图片描述

    再输入 redis-server.exe --service-start 命令,启动服务。

    在这里插入图片描述

    • 启动服务:redis-server.exe --service-start
    • 暂停服务:redis-server.exe --service-stop
    • 卸载服务:redis-server.exe --service-uninstall

    三、部署 Java 服务

    Java项目是通过 Springboot 开发的,然后打成 jar 包形式。

    3.1 命令行临时启动服务

    正常我们是通过命令java -jar xx.jar启动Java服务,但是此方式有个缺点是要一直保持打开着窗口。

    在这里插入图片描述

    3.2 后台启动Java服务

    新建 run.bat 文件,在文件中输入以下内容,保存。最后双击run.bat文件即可后台启动Java服务。

    @echo off
    
    title Service Run
    
    color 3E
    
    start javaw -jar -Xbootclasspath/a:application.yml exmail-sso-server.jar
    
    echo ------------------------ exmail service -------------------------
    echo .
    echo -------------------- service start succefully -------------------
    echo .
    echo -----------------------------------------------------------------
    
    timeout /t 3
    
    exit
    

    title Service Run:是为启动窗口设置窗口名称 Service Run
    color 3E:设置窗口颜色为3E
    -Xbootclasspath/a:application.yml:启动服务使用外部配置文件 application.yml,这里是使用相对路径,application.yml 文件和 exmail-sso-server.jar 文件在同一目录下。如果不使用外部配置文件,这串命令可以去除。
    echo:打印我们想在控制台输出的内容,也可去除。
    timeout /t 3:窗口在多久后自动关闭,这里设置3秒。

    双击 run.bat 文件启动服务后,显示如下窗口则代表服务启动成功。
    在这里插入图片描述

    但是如果我们想要终止删除这个Java后台服务呢,可以按如下方式终止:

    • 首先通过服务端口号找到服务进程ID,命令为netstat -ano |findstr 端口号,也可以通过命令tasklist在进程列表中查找。
    • 杀死进程,命令为 taskkill /pid 进程号。如果报【错误:无法种子PID为xxxx的进程】错误,则需要使用taskkill -F /pid 进程号命令强制杀死进程。

      查看杀进程命令的帮助命令为taskkill /?

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    也可以通过 system idle process 杀掉进程,例如我们这是使用 javaw 命令启动服务的,所以可以使用 taskkill -f -t -im javaw.exe 杀死进程。

    例如,我的关闭服务脚本文件 shutdown.bat 文件内容如下

    @echo off
    
    title Service Shutdown
    
    color 3E
    
    taskkill -f -t -im javaw.exe
    
    echo ------------------------ exmail service ------------------------
    echo .
    echo -------------------- service stop succefully -------------------
    echo .
    echo ----------------------------------------------------------------
    
    timeout /t 3
    
    exit
    

    双击 shutdown.bat 文件后,显示窗口如下
    在这里插入图片描述

    我的服务文件路径位置存放如下
    在这里插入图片描述

    展开全文
  • 你的java服务挂了吗

    万次阅读 2020-01-09 18:01:57
    最近测试环境服务总是崩溃,运维小哥全部重启后还是崩溃,查看了服务运行情况占用内存确实挺高的,看来是时候优化一波jvm参数了。 优化前 top $(ps -e | grep java | awk '{print $1}' | sed 's/^/-p/') 优化后 ...

    问题背景

    最近测试环境服务总是崩溃,运维小哥全部重启后还是崩溃,查看了服务运行情况占用内存确实挺高的,看来是时候优化一波jvm参数了。

    优化前

    top $(ps -e | grep java | awk '{print $1}' | sed 's/^/-p/')  
    

    优化前

    优化后

    nohup java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar
     ${LUJING}/${NAME}/${NAME}.jar --spring.profiles.active=dev >${LUJING}/${NAME}/nohup.out 2>&1 &
    

    优化后

    总结

    通过优化前后对比,我们发现通过jvm参数调整后,VIRT、RES、%MEM这几个指标都有了明显的变化。

    VIRT—virtual memory usage虚拟内存

    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等,单位kb,VIRT=SWAP+RES
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

    RES:resident memory usage 常驻内存

    1、进程当前使用的内存大小,但不包括swap out,单位kb, RES=CODE+DATA
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

    %MEM

    进程使用的物理内存百分比

    展开全文
  • 1、查看所有正在运行的java服务 ps -ef |grep java 或 ps -aux |grep java 2、根据进程Id 查询端口及更多信息( 上一步操作获得) netstat -anop | grep 11312 3、查看Linux 的所有端口占用 netstat -tupln ...

    1、查看所有正在运行的java服务

    ps -ef |grep java    或    ps -aux |grep java  
    

    在这里插入图片描述

    2、根据进程Id 查询端口及更多信息( 上一步操作获得)

    netstat -anop | grep 11312
    

    在这里插入图片描述

    3、查看Linux 的所有端口占用

    netstat -tupln  
    

    在这里插入图片描述

    • 个人开源项目(通用后台管理系统)–> https://gitee.com/wslxm/spring-boot-plus2 , 喜欢的可以看看

    • 到此结束,如果觉得有用,动动小手点赞或关注一下呗,将不定时持续更新更多的内容…,感谢大家的观看!

    tail -f 文件名 查看日志
    nginx -s reload 刷新nginx配置

    展开全文
  • java服务器开发(二)

    千次阅读 2018-07-13 10:03:49
    java服务器开发基础篇-从零开始 这里记录了最初期的基本开发步骤 1、
  • 代码 脚本server.sh #!/bin/bash app='xxxxxx.jar' args='-Xms2g -Xmx2g -Dspring.profiles.active=dev' ...pid=`ps -ef|grep java|grep $app|awk '{print $2}'` startup(){ nohup java -jar $args $app & ...
  • linux下 docker和发布java服务 使用命令大全 linux下发布java项目jar包操作命令 linux下docker操作命令 Docker中上传,拉取镜像到docker hub中 linux下发布java项目jar包操作命令 第一步:查看java服务相关进程号 ps...
  • java服务器返回中文乱码:???

    万次阅读 2018-01-06 14:28:43
    java服务器中传来的中文显示为问号“?”,例如下面的name的值: 原因是服务器response的charset没有设置位“UTF-8",默认为”ISO-8859-1"。 解决办法: 在 PrintWriter out = response.getWriter(); ...
  • Java服务器高级编程

    千次下载 热门讨论 2014-11-12 09:05:51
    Java服务器高级编程,外国人写的,很不错,pdg格式的,pdg阅读器在这里有,绿色版的 http://download.csdn.net/detail/dlfku/8129105
  • Java服务器接收上传的文件

    万次阅读 2017-05-26 08:48:31
    有时候我们服务器需要接收来自用户上传过来的文件,这时候就需要服务器端有相应的服务能够接收这个文件 下面写一个简单的服务器端代码,需要的朋友可以参考一下 注释很全就不多啰嗦了 package ...
  • Java服务内存溢出问题解决和总结

    万次阅读 2018-08-16 16:31:17
    最近,公司测试环境服务发现一个问题:一个接口服务,合作方再调接口时,经常会出现连接超时异常(connection reset by peer),紧接着看到服务内存100%,加内存也没用,不管加多少还是会缓慢升至100%。如下图: ...
  •  其中一个数据服务(主要提供订单交易数据聚合查询),用着用着就服务挂掉了也就是进程没有了。 二、分析过程  1.了解服务器配置 =====》 4核8G内存  2.通过 ps -ef|grep java 查看被关掉的应用 当前进程id...
  • 问题的根本在于是Jenkins使用processTreeKiller杀掉了所有子进程,而且这是Jenkins的默认行为。为了解决该问题,我们需要在启动前加上这句 BUILD_ID=DONTKILLME ...nohup java -jar test.jar & ...
  • 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
  • IntelliJ Idea 远程调试Java服务

    万次阅读 2017-07-03 09:34:06
    但是,有些服务启动时间较长、不断的打包、上传、测试会令人非常头疼。因此,可以使用远程调试的方式对远程部署的服务调试。2、准备 idea IDE、远程服务源码 远程服务 测试客户端 3、部署图由于是对源码进行调试,...
  • 编写linux脚本操作 java 服务

    万次阅读 2019-12-18 00:51:19
    为了在linux上能否方便的启动和关闭JAVA项目,为其编写一个好用的脚本,能大大的提高工作效率,在这里将...nohup java -jar 服务名称.jar & 停止脚本stop.sh #!/bin/bash PID=$(ps -ef | grep 服务名称.ja...
  • 什么是JSP,JSP全称为Java Server Pages,即Java服务器页面,是一套动态网页标准技术。而这个标准由各大web服务器厂商实现。下面先简单的介绍一下JSP的相关知识点。 软件的两种架构 软件分为2种架构: 1. C/S ...
  • java做的一个简单的web应用,最后一次修改是1月28号,中间间或重启过两三次 前几天大概就这周一莫名的宕机了,随后就经常宕机快平均一天宕一次了,查看了 linux进程运行情况发现内存使用越来越大并且没有回落,...
  • 摘要:本节主要来讲解Android10.0 JAVA层的HIDL服务创建和JAVA层的Client验证 阅读本文大约需要花费15分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢...
  • java mqtt服务器搭建

    千次阅读 2020-10-03 15:28:02
    MQTT服务器搭建和客户端代码编写(java实现) 服务器 关于linux系统,可以在阿里云购买云服务器或者利用虚拟机安装CentOs系统。我用的就是阿里云的云服务器,比较方便吧 安装Emqx服务器 安装必要的依赖: $ sudo yum ...
  • 基于Java的RTSP服务

    千次阅读 热门讨论 2020-03-24 22:48:23
    因公司项目需求,需要开发一个基于java的RTSP服务,支持RTP/UDP和RTP/TCP模式的VLC播放。本人在这方面也是小白一个,于是各种谷歌,百度查找资料学习RTSP/RTP相关的理论知识,理论知识了解的差不多了,就想找一些...
  • 服务器java进程查看

    千次阅读 2018-07-04 10:38:45
    1.首先根据你访问端口号找到程序的PId:netstat -anp | grep 8888这里返回的23033就是Pid;2.查看该应用线程占用:top -p 23033 -H3.查看进程信息:jstack 23033 |grep -A 10 0x5a24这里5a24...执行完成后java线程栈...
  • 标题JAVA统计服务器资源(cpu,内存,磁盘)–LINUX 使用类: com.sun.management.OperatingSystemMXBean 继承:java.lang.management.OperatingSystemMXBean JDK 版本1.8 API 说明 项目用的jdk 是1.8,接口也能调,不...
  • 在用idea开发java项目时,启动报内存溢出错误,致服务启动失败: Error:java: java.lang.OutOfMemoryError: GC overhead limit exceeded 报此错说明启动期间内存不够用了,把idea的启动进程堆内存值设大点就行了。...
  • 1.服务压测出问题 2021-06-16 09:04:51.062 [http-nio-8089-exec-78] ERROR o.a.c.core.ContainerBase.[Tomcat].[localhost] - Exception Processing ErrorPage[errorCode=0, location=/error] org.apache.catalina....
  • Java开发常用服务端口整理

    万次阅读 2020-12-14 10:26:44
    Java开发常用服务端口整理 序号 服务 端口号 1 http/Nginx 80 2 https 443 3 ssh/scp 22 10 FTP 21 4 DNS 53 5 SMTP 25 5 Telnet 23 6 MySQL 3306 7 Oracle 1521 8 Tomcat 8080 9 Redis...
  • java服务器对json数据进行gzip压缩

    万次阅读 2017-08-18 09:57:12
    因为有时候传输的json数据比较多,比较大的时候,我们需要对json数据进行压缩。下面贴出一个使用的例子 “`httpServletResponse.setHeader(“Content-Encoding”, “gzip”); httpServletResponse.setHeader(...
  • java web接收上传文件服务器端示例

    热门讨论 2015-03-15 13:58:37
    做毕业设计的时候Android端要求把相关文件传到服务器端保存,目前这个就是用来接收文件上传请求的简单项目,目前就是在传送参数的时候中文会乱码,但是传送的文件不会乱码
  • java cmd 命令 开启服务 关闭服务

    千次阅读 2018-01-21 22:47:34
    java 运行 cmd 命令,可以开启、关闭 windows 上的服务,测试通过。 public class Main { public static void main(String[] args) { String exe = new Main().exe("mysql57"); System....
  • 实现方式: 使用NSSM 使用教程 ...2、下载下来之后是一个压缩包,解压找到... 把其拷贝到需要注册服务的同级目录注:bat文件配置新建bat文件,将下面配置拷贝进去 title java-demo @echo off java -jar java-demo.ja...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,641,446
精华内容 1,056,578
关键字:

java 服务

java 订阅