Linux后台运行Java程序命令详解

nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 &

上面是后台运行Java程序,并将日志输出到 /var/log/java/app3.log 的Linux命令,本文将详细分析此命令。

启动jar包

java -jar -Xms512m -Xmx512m app3.jar  这条命令是运行app3.jar,并将最大堆内存、最小堆内存设置为512m。

输出与输出重定向

重定向命令列表

命令说明
command > file将输出重定向到 file。
command < file将输入重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。

新建一个 file01.txt 文件,并填写一些内容。

vim file01.txt

输入 abcdefg

执行 cat file01.txt > file_new.txt 命令,cat命令的输出重定向到file_new.txt。

执行 cat not-exit-file.txt > not-exit-new.txt 命令,not-exit-file.txt 文件不存在,提示信息“cat: not-exit-file.txt: 没有那个文件或目录”是一个标准错误输出,而标准错误输出并没有重定向到 not-exit-new.txt

在Linux运行一个shell命令行时通常会自动打开三个标准文件:

    标准输入文件(stdin),文件描述符为0,通常对应终端的键盘,进程将从标准输入文件中得到输入数据。
    标准输出文件(stdout),文件描述符为1,正常输出数据输出到标准输出文件。
    标准错误输出文件(stderr),文件描述符为2,错误信息输出到标准错误文件中。

> 符号是将文件描述符为1的输出重定向到文件中,而 cat not-exit-file.txt 得到的是一个标准错误输出,如果要将标准错误输出重定向到文件,这要使用 2> 符号

cat not-exit-file.txt 2> not-exit-new.txt

如果要将标准输出和标准错误输出都重定向到文件,可使用 command > file 2>&1 命令。

java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 此命令便是运行app3.jar,并将标准输出和标准错误输出重定向到 /var/log/java/app3.log

后台启动 &

在终端运行某个命令时,终端被该命令占据,可以在命令后面加上 & 实现后台运行。

java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1   这条命令便是后台运行app3.jar

但这种启动方式有缺陷,使用&启动的后台进程与终端关联,当用户注销(logout)或者网络断开时,终端会收到Linux HUP信号(hangup)从而关闭终端,并且关闭其所有子进程。

nohup不挂起( no hang up)

使用nohup命令可以使得进程忽略HUP信号,即便终端关闭了,nohup启动的进程也不会被关闭。

nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 &

总结

nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 &

这条命令的作用是:让app3.jar在后台运行,将标准输出、标准错误输出重定向到/var/log/java/app3.log,并且忽略HUP信号,终端关闭时,本进程不关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值