后台运行命令

先给出来几个执行java命令行语句的例子:

1.java -jar gs-spring-boot-docker-0.1.0.jar

2.java -jar gs-spring-boot-docker-0.1.0.jar &

3.nohup java -jar gs-spring-boot-docker-0.1.0.jar

4.nohup java -jar gs-spring-boot-docker-0.1.0.jar &

5.nohup java -jar gs-spring-boot-docker-0.1.0.jar > log.log &

第一个命令是简单的java命令执行一个jar文件,由于这个jar文件的MANIFEST.MF文件中已经指定了Main-Class: org.springframework.boot.loader.JarLauncher,所以我们不用在命令行给出main方法所在的类了。

如果jar里面的MANIFEST.MF文件中没有指定Main-Class,那么运行语句需要改成java -cp gs-spring-boot-docker-0.1.0.jar org.springframework.boot.loader.JarLauncher

第二个命令在末尾增加了一个&符号。末尾&符号的作用是:在后台运行。当我们运行之后,确实命令行立刻恢复到了输入状态,但是每当后台运行的程序有标准输出时,仍然会输出在当前的窗口上。

如果不想输出到当前窗口,可以使用重定向符号来指定输出位置,像这样java -jar gs-spring-boot-docker-0.1.0.jar > log.log &。

这里简单说一下三个定向符号:> 标准输出定向到文件,文件原有内容会被覆盖;>> 以追加方式把标准输出定向到文件,文件原有内容会保留,新输出会追加到文件末尾;< 标准输入定向到文件。

第三条命令是在第一条的基础上增加了nohup命令。nohup的作用是:已不间断的方式运行,忽略hangup singal,也就是命令行窗口退出,程序也不退出。 但是命令行仍然被占用,也就是nohup没有让程序后台运行。

所以,大家会在很多地方看到nohup和&被同时使用,也就是第四条命令的样式。这样就能既让程序在命令行窗口退出时仍然处于运行状态,又能在命令执行后的瞬间能把命令行所有权释放。

由于nohup会把标准输出写到nohup.out文件中,如果想执行自己的文件名,可以使用第五条命令的样式,指定自己的输出文件位置。

如果也就程序内部已经指定的日志输出位置,那么我们可以不保留标准输出的内容,可以把标准输出写入到/dev/null中,像这样nohup java -jar gs-spring-boot-docker-0.1.0.jar > /dev/null &

2>$1

还是看一个例子:

nohup java -jar gs-spring-boot-docker-0.1.0.jar > log.log 2>&1 &

这里的nohup、末尾的&、以及>log.log的意义已经解释过了,这里在看一下2>&1。

这里的1和2分别代表标准输出和标准错误,还有一个值0,代表标准输入:

文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

2 > &1意思就是把标准错误的信息,重定向到标准输出中。

Linux下的JAVA命令参数_以java命令为例解析linux命令行调用语句相关推荐

  1. java请求参数_在Java中发送http的post请求,设置请求参数等等

    前几天做了一个定时导入数据的接口,需要发送http请求,第一次做这种的需求,特地记一下子, 导包 import java.text.SimpleDateFormat; import java.util ...

  2. java 送参数_关于java:如何以编程方式发送带参数的HTTP请求?

    本问题已经有最佳答案,请猛点这里访问. 如果我使用浏览器向服务器发送信息(例如使用登录.密码页),我只需填写用户文本框和密码文本框,然后单击登录按钮. 我想发送此信息,但不必使用浏览器.我想" ...

  3. java 泛型参数_[基础]-Java泛型

    一.概述 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的 ...

  4. java flowlayout参数_【Java布局】FlowLayout布局时设定组件大小

    默认的JPanel中,采用的是FlowLayout布局 下面是api中的定义: JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 J ...

  5. java 中文参数_关于JAVA中URL传递中文参数的问题

    今天在调用一个接口时,需要传递一个中文参数,结果获取不到数据,原因就在于中文传参的编码问题. 问题来源:URL url= new URL("http://XXX?OrganName=司法厅& ...

  6. Linux集群和自动化维1.4.2 优化Linux下的内核TCP参数以提高系统性能

    1.4.2 优化Linux下的内核TCP参数以提高系统性能 内核的优化跟服务器的优化一样,应本着稳定安全的原则.下面以Squid服务器为例来说明,待客户端与服务器端建立TCP/IP连接后就会关闭Soc ...

  7. linux下刻录光盘读取不了_如何在Linux下刻录数据光盘

    caoshun(原作) 本着让Linux精神发扬光大宗旨,我将部门原来的Windows2000服务器上所有的数据与提供的服务全部迁移到新建的Linux服务器上.在我即将要把这台老Windows2000 ...

  8. Windows/Linux下引用jar包,并用javac/java编译运行

    Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...

  9. linux uname内核,Linux下confstr与uname函数_获取C库与内核信息

    Linux下confstr与uname函数_获取C库与内核信息 #include #include  //uname int main(int argc, char **argv[]) { struc ...

最新文章

  1. 使用 EF Core 的 EnableRetryOnFailure 解决短暂的数据库连接失败问题
  2. Exchange Server 2013 规划系列之日志容量规划、数据库容量规划
  3. 图灵机器人api接入c语言,apikey创建接入图灵机器人
  4. sqlserver 遇到以零作除数错误的处理 不报错的解决方法
  5. 南工计算机调剂,南京工业大学2021年硕士研究生调剂公告
  6. Machine Learning - Andrew Ng on Coursera (Week 1)
  7. 什么是nodejs呢?
  8. ubuntu20.04 sshd 配置root 登录
  9. Ansible的Inventory管理
  10. common_test使用注意事项
  11. EasyUI加zTree使用解析 easyui修改操作的表单回显方法 验证框提交表单前验证 datagrid的load方法...
  12. 路由器互通过程(简述)
  13. 华为数通NA-NP学习笔记(个人精简)
  14. python列表平均数怎么求_Python 中 输入一个数值列表,并求出其平均值
  15. PyTorch:view() 与 reshape() 区别详解
  16. 数据分析的类型有哪些?
  17. Python3遇到问题unicodeescape codec cant decode bytes in position 2 3 truncated UXXXXXXXX escape解决办法
  18. 科技云报道:2022Arm服务器现状:云阵营已成
  19. 计算机房显示屏无信号,显示屏无信号,教您电脑显示屏无信号怎么办
  20. 数据标注丨7大数据标注工具分享

热门文章

  1. 百度CTO王海峰:百度翻译每日翻译量已达到千亿字符
  2. 新职业风口已至!人社部宣布这 10 个职业缺口近千万!
  3. 腾讯公布5G开放平台全景图,定义12大场景,引入45个应用
  4. Yann LeCun 会成为下一个居里夫人吗?
  5. iOS 开发面试通关指南:67 个必知问题!
  6. 漫画:什么是字符串匹配算法?
  7. 微软成功尝试:员工周休三天、待遇不变,工作效率却提高40%!
  8. 程序员如何快速迁移 10 亿级数据?
  9. 为何 iOS 越来越偏爱 Swift?
  10. 身为程序员的父母,你年薪多少才能让“码二代” 不输在起跑线上