资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

nohup java -Xms512m -Xmx1024m -jar ......

Java 更新时间: 发布时间: 计算机考试归档 最新发布

nohup java -Xms512m -Xmx1024m -jar ......

完整命令及解释如下:

nohup java -Xms512m -Xmx1024m -jar /jack/cloudmes/jar/njp-plus-empty-admin-api.jar --spring.profiles.active=onlineTest --type=jack > /jack/cloudmes/jar/out.file 2>&1 &

  • nohup:不挂断地运行命令,即使终端关闭,命令也会一直运行。这个命令常用于长时间运行的任务,如后台服务程序等。
  • java:Java 程序执行命令。
  • -Xms512m:设置 JVM 初始分配的堆内存大小为 512MB。
  • -Xmx1024m:设置 JVM 最大可用的堆内存大小为 1024MB。
  • -jar:表示运行一个 jar 文件。
  • /jack/cloudmes/jar/njp-plus-empty-admin-api.jar:要运行的 jar 文件的路径。
  • --spring.profiles.active=onlineTest:设置 Spring Boot 运行时的 profile 为 onlineTest。
  • --type=jack:设置程序运行类型为 jack。
  • > /jack/cloudmes/jar/out.file:将程序的标准输出(STDOUT)重定向到 /jack/cloudmes/jar/out.file 文件中。其中,">" 表示覆盖写入,如果想要追加写入可以使用 ">>"。
  • 2>&1:将程序的标准错误输出(STDERR)重定向到标准输出中,使得标准输出和标准错误都被写入到 /jack/cloudmes/jar/out.file 文件中。
  • &:将命令放入后台运行。

如何根据-Xms和-Xmx设置堆内存大小?

在 Java 应用程序中,-Xms 和 -Xmx 选项用于设置 Java 虚拟机(JVM)的初始堆大小和最大堆大小。

-Xms 选项设置 JVM 的初始堆大小。默认情况下,JVM 的初始堆大小为物理内存的 1/64。例如,如果物理内存为 8 GB,则 JVM 的初始堆大小为 128 MB。使用 -Xms 选项可以显式设置 JVM 的初始堆大小。例如,要将 JVM 的初始堆大小设置为 512 MB,可以使用以下命令:

java -Xms512m MyApp

-Xmx 选项设置 JVM 的最大堆大小。默认情况下,JVM 的最大堆大小为物理内存的 1/4。使用 -Xmx 选项可以显式设置 JVM 的最大堆大小。例如,要将 JVM 的最大堆大小设置为 1024 MB,可以使用以下命令:
 

java -Xmx1024m MyApp

需要注意的是,JVM 的最大堆大小不能超过系统内存大小。

-Xms 和 -Xmx 这两个选项可以影响 JVM 的性能和稳定性。

需要注意以下几点:

  1. -Xms 和 -Xmx 选项必须使用相同的单位,通常是m(MB)或g(GB)。

  2. 初始堆大小不应该小于最小堆大小,最大堆大小不应该大于系统可用内存。

  3. 如果设置的初始堆大小和最大堆大小相同,则 JVM 只会在启动时分配一块内存,这可能导致程序运行时发生内存分配错误。因此,通常应将初始堆大小设置为最小堆大小,将最大堆大小设置为预计使用内存的两倍。

  4. 过大的堆大小可能会导致长时间的垃圾回收,从而导致性能下降。因此,应该根据应用程序的需求来调整堆大小,以实现最佳性能和稳定性。

  5. 在设置 JVM 堆大小时,还应考虑其他因素,例如应用程序的并发访问量、线程数和所需的堆外内存大小等。

 如何查看linux物理内存大小?

在 Linux 中,可以使用 free 命令来查看系统的物理内存大小和使用情况。

free -h

查询结果如下:

查询结果中的swap是什么?

在 Linux 中,swap 是虚拟内存(swap space)的意思,是在物理内存(RAM)不足时用作备用的一部分磁盘空间。如果系统中的物理内存用尽了,而又有新的进程需要使用内存,就会将某些不经常使用的数据移到 swap 空间中来,以便腾出物理内存供新的进程使用。因此,如果系统中的 swap 空间过小,就会影响系统的性能和稳定性。

--type=jack 是什么?感觉没用呀? 

--type=jack 是命令行参数中的一个选项,这个命令启动的 Java 程序中自定义的参数之一。这个选项可能在程序中被使用,也可能是没有用到的。如果程序中没有使用这个选项,则可以不传入这个参数。

通常情况下,我们会为程序传入一些自定义参数,这些参数可以用于在程序运行时做出不同的行为或配置。--spring.profiles.active=onlineTest 是一个常用的选项,用于设置程序运行的 Spring Profile,而 --type=jack 则是程序中自定义的一个选项。

 自定义的一个选项,在程序中如何使用?

自定义的命令行选项可以在 Java 程序中通过命令行参数解析库来解析。常用的 Java 命令行参数解析库有 Apache Commons CLI、JCommander 等。

举个例子,在使用 Apache Commons CLI 的情况下,可以在 Java 程序中通过以下代码来解析命令行选项:

   commons-cli   commons-cli   1.2
import org.apache.commons.cli.*;public class MyApp {    public static void main(String[] args) {        Options options = new Options();        options.addOption("t", "type", true, "program type");        CommandLineParser parser = new DefaultParser();        try {            CommandLine cmd = parser.parse(options, args);            if (cmd.hasOption("t")) {                String type = cmd.getOptionValue("t");                System.out.println("Program type: " + type);            }        } catch (ParseException e) {            System.err.println("Error: " + e.getMessage());        }    }}

在上面的代码中,我们定义了一个 type 选项,然后通过 Apache Commons CLI 解析命令行参数,并获取 type 选项的值,最后打印出来。

详解 > /jack/cloudmes/jar/out.file 2>&1 &这段命令

这段命令是用来将命令的输出重定向到文件并使命令在后台运行的。具体解释如下:

  1. > 符号用于将命令的输出重定向到文件 /jack/cloudmes/jar/out.file,如果该文件不存在,则会创建该文件。例如,命令 ls > out.txt 将把 ls 命令的输出写入到文件 out.txt 中。

  2. 2>&1 符号将标准错误输出(标准错误流)重定向到标准输出(标准输出流),也就是将错误信息输出到与正常输出相同的地方。例如,命令 ls -l badfile 2>&1 将把标准错误输出写入到标准输出中,这样就可以在同一个文件或终端中看到所有的输出。

  3. & 符号用于将命令放到后台运行,这样就可以在命令执行的同时进行其他操作了。例如,命令 nohup sleep 10 > out.txt 2>&1 & 将在后台运行一个 sleep 命令,并将其输出重定向到文件 out.txt 中。

综上所述,这段命令的作用是将 java 命令在后台运行,并将其输出重定向到文件 /jack/cloudmes/jar/out.file 中。2>&1 保证标准错误信息和标准输出信息都会被重定向到文件中。

成功运行命令后,如何查询应用的进程id?

使用命令:

ps -ef| grep xxl-job-executor-2.4.1-SNAPSHOT.jar

查询结果:

root     27318     1  1 09:13 pts/12   00:00:15 java -Xms512m -Xmx1024m -jar /jack/cloudmes/job/xxl-job-executor-2.4.1-SNAPSHOT.jar --spring.profiles.active=onlineTestroot     28583 28532  0 09:36 pts/14   00:00:00 grep --color=auto xxl-job-executor-2.4.1-SNAPSHOT.jar

查询结果中第二行进程是什么?带 --color字样

该进程就是查询命令本身。是一个 grep 命令的进程,用于查找包含 xxl-job-executor-2.4.1-SNAPSHOT.jar 字符串的进程

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097612.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【nohup java -Xms512m -Xmx1024m -jar ......】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2