linux关闭java_linux 退出 java -jar 后台执行

这里的linux退出,指的是linux(退出管理工具),非注销登陆。

java -jar xxx.jar 即刻启动jar包,能看到输出的日志。linux 退出后会关闭该执行。

java -jar xxx.jar & 即刻在后台启动jar包,看不到到输出的日志。linux 退出后会关闭该执行。

如何保证jar包执行后,退出linux,jar包不会随之关闭,导致项目无法访问

此处我们需要使用到nohup

nohup

用途:不挂断的运行命令

语法:nohup Command [ Arg … ] [ & ]

&

用途:在后台运行

一般两个一起用

nohup command &

eg:nohup java -jar xxx.jar >log.txt &。这种方式会在jar目录下生成log.txt。这里我们先查看当前项目是否还在运行:ps -ef | grep xxx.jar,可以看到如下结果(例图):

0665e71775f0e98b3b8d7a66d1cb6d82.png

grep 类型 的是默认的,我们主要处理的是java类型的,执行kill -9 11858

再次执行ps -ef | grep xxx.jar就只能查到grep 类型的了。

后台启动时 使用  nohup java -jar xxx.jar >/log/log.txt 2>&1 &

第一个>后面是你的入职输出路径

第二个> 后面的 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。

最后一个& , 是让该命令在后台执行。

对 于& 1 更准确的说应该是文件描述符 1,

1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.

他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),

其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.

其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,

然后扔到/log 下面去。

/log/log.txt 2>&1 &

是将command的输出重定向到/log/log.txt ,即输出的内容不会打印到当前屏幕,而是输出到了/log/log.txt 文件中。

标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。

标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。

标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。

屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;

如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

“> /log/log.txt 2>&1” :表示将 stdout 和 stderr 合并后重定向到 /log/log.txt

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值