栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java启动命令日志输出重定向

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java启动命令日志输出重定向

1、问题描述

java启动项目命令:

nohup java -jar -server -Dserver.port=10001 -Xms1024M -Xmx1024M -Dspring.profiles.active=dev /usr/local/application/laowang/laowang.jar  >/dev/null 2>&1 &

执行起来是没问题,关于日志输出重定向,开始有点搞混了,记录下。

2、解决方案

1、首先要明确的是,nohup这些是在linux下执行的shell命令,其中的重定向也是shell命令参数的一种,不是java专用命令;

2、 nohup — & ,这个是shell命令,表明是在后台运行,挂起,关闭ssh窗口也不会被关闭;

3、我们经常使用nohup command &命令形式来启动一些后台程序,比如一些java服务:

# nohup java -jar xxxx.jar &

为了不让一些执行信息输出到前台(控制台),我们还会加上刚才提到的>/dev/null 2>&1命令来丢弃所有的输出:

# nohup java -jar xxxx.jar >/dev/null 2>&1 &

当执行shell命令时,会默认打开3个文件,每个文件有对应的文件描述符来方便我们使用:

类型文件描述符默认情况对应文件句柄位置
标准输入(standard input)0从键盘获得输入/proc/self/fd/0
标准输出(standard output)1输出到屏幕(即控制台)/proc/self/fd/1
错误输出(error output)2输出到屏幕(即控制台)/proc/self/fd/2

(1)“>/dev/null"

这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容;

(2)“2>/dev/null”
意思就是把错误输出到“黑洞”;

(3)“>/dev/null 2>&1"
默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”;

(4)“2>&1 >/dev/null”
意思就是把错误输出2重定向到标准输出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕;

(5) >log.log 是将信息输出到log.log日志中

# nohup java -jar xxxx.jar  >/var/log.log 2>&1 &

2>&1 是将标准错误信息转变成标准输出,这样就可以将错误信息输出到log.log 日志里面来。


更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术见解和生活故事。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号