linux 执行maven项目jar包,并指定日志路径
linux 执行maven项目jar包,并指定日志路径
·
一. 启动脚本
# 获取当前脚本所处的目录
sh_dir=$(cd `dirname $0`; pwd)
echo ${sh_dir}
if [ ! -d "${sh_dir}/logs/" ];then
mkdir ${sh_dir}/logs
echo "日志文件夹 ${sh_dir}/logs创建成功"
fi
#
cd ${sh_dir}
echo "开始启动..."
nohup java -jar test-jar-1.0-SNAPSHOT.jar 1>${sh_dir}/logs/out.log 2>&1 &
echo "启动成功,running..."
结合log4j2.xml配置如下:
<property name="FILE_PATH" value="logs/"/>
log4j2.xml完整配置见:
二. 启动命令解释
# 启动命令
nohup java -jar test-jar-1.0-SNAPSHOT.jar 1>${sh_dir}/logs/out.log 2>&1 &
开头的nohup
和结尾的&
:
使用nohup
运行程序:
nohup 即 no hang up 不挂断
- 结果默认会输出到nohup.out
- 使用Ctrl + C,程序关闭
- 关闭session,程序免疫
使用&
后台运行程序:
- 结果会输出到终端
- 使用Ctrl + C,程序免疫
- 关闭session,程序关闭
平日线上经常使用nohup
和&
配合来启动程序。
符号>
>
标准重定向符,允许我们创建一个 0KB 的空文件。它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符号时,它会创建一个文件。1>${sh_dir}/logs/out.log
, 1表示标准输出流(默认是屏幕),屏幕输出重定向到文件${sh_dir}/logs/out.log
;2>&1
,2表示标准错误流(默认是屏幕),符号>&
是一个整体,代表将标准错误2重定向到标准输出1,如果是2>1的话,代表将标准错误输出到文件1,而不是重定向到标准输出流;- 拓展:
> /dev/null
,/dev/null
可以看作黑洞,等价于一个只写文件。所有写入它的内容都会永远丢失,尝试从它那儿读取内容则什么也读不到。也就是将所有产生的日志将被丢弃。
更多推荐
已为社区贡献1条内容
所有评论(0)