java -jar 运行 jar 文件

在日常开发过程中,尤其是基于springboot开发,会遇到到很多需要直接运行jar文件的情况,而普通的java -jar xxx启动方式,在ctrl+c或关闭窗口后,程序自动终止,现在我们来试试后台启动的方式来运行jar文件。

java -jar xxx.jar

这种启动方式表示在当前ssh链接窗口,按ctrl+c打断程序运行,或直接关闭窗口程序直接退出。

java -jar xxx.jar &

对比上面那种,这种方式结尾多了一个&(&左边有空格),&表示让程序保持在后台运行,只有当前窗口关闭才会终止程序运行

nohup java -jar xxx.jar &

nohup表示不挂断运行命令,当账户退出或关闭远程终端时,程序仍然运行,该命令执行期间的所有控制台输出会被重定向到nohup.out文件中

nohup java -jar xxx.jar > xxx.log &
或
nohup java -jar xxx.jar >> xxx.log &

该命令和上面的区别在于,会将所有的输出重定向到xxx.log文件中,而不是默认的nohup.out文件(>>表示将输出以追加的方式重定向到xxx.log文件中)

nohup java -jar XXX.jar > xxx.log 2>&1 & 
或
nohup java -jar XXX.jar >> xxx.log 2>&1 & 
或
nohup java -jar XXX.jar > /dev/null 2>&1 & 

xxx.log 2>&1 表示将stdout和stderr合并后重定向到xxx.log文件中
/dev/null 2>&1 & 起到屏蔽输出的效果,如果我们不屏蔽jar包启动的输出文件,在很多次的启动停止后,该输出文件会变得越来越大,这时,我们可以采取屏蔽输出文件的方式,/dev/null是一个特殊的文件,可以在目录下通过ls命令找到他,写入到它的内容都会被丢弃,如果尝试从该文件读取内容,则什么也看不到。

注释

stdin:标准输入文件,文件描述符为0,Unix程序默认从stdin读取数据
stdout:标准输出文件,文件描述符为1,Unix程序默认向stdout输出数据
stderr:标准错误文件,文件描述符为2,Unix程序默认向stderr流中写入错误信息

# Linux 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×