Linux部署项目jar包遇到的问题——nohup命令
今天部署项目因为要后台运行,就是将Xshell命令窗口关闭之后项目仍能正常运行,因此需要使用 “nohup java -jar XXX.jar”,而不是“java -jar XXX.jar”。
但是使用nohup命令有可能会出现:
nohup: ignoring input and appending output to ‘nohup.out
原因是nohup命令对nohup.out没有写入权限
解决办法:
使用Linux重定向解决nohup.out无写权限问题使用Linux重定向解决nohup.out无写权限问题
■场景
执行nohup命令的时候,经常会出现下面这种没有写入权限的错误。
nohup: ignoring input and appending output to nohup.out' nohup: failed to run command
/etc/nginx_check.sh’: Permission denied
■linux重定向:
0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。
在一般使用时,默认的是标准输出,既1。当我们需要特殊用途时,可以使用其他标号。
例如,将某个程序的错误信息输出到log文件中:./program 2>log。
这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。
另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。
这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:
ls 1>/dev/null 2>/dev/null
还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:
ls >/dev/null 2>&1
注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,
然后将标准错误重定向到标准输出。
由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄。
■关于nohup
在使用nohup命令的时候,经常由于输出nohup.out的路径没有写入权限,而无法使用nohup。
这是可以使用Linux重定向的方法,将nohup.out重定向至一个有写入权限的路径,或者直接扔到/dev/null中。
nohup ./program >/dev/null 2>/dev/null &
或者
nohup ./program >/dev/null 2>&1 &
之后我运行:“nohup java -jar XXX.jar & ",但偶尔有报错信息,我以为还是不行,花了半天时间找资料.
到了晚上后,我打开nohup.out文件,看到里面记录的是项目运行的日志信息,恍然大悟,有日志信息说明原来nohup命令对nohup.out已经有写的权限了,且记录的日志信息也是正确的,因此原来已经部署好了。
因此,可以先看看你的nohup.out文件,先确定你的项目有没有正常启动,如果有问题则需要排除掉,最后才能成功部署!
参考文章:
- https://blog.csdn.net/jiangyu1013/article/details/81476184
- https://www.iteye.com/blog/aniyo-1496442
- https://www.cnblogs.com/quchunhui/p/5582371.html
原文:http://www.linblog.tech/blog/27
Linux部署项目jar包遇到的问题——nohup命令相关推荐
- java开机自启动 Linux,java项目jar包开机自启(WINDOWS,Linux)
WINDOWS: 1.新建一个text文件,将 java -jar D:\eclipse-workspace\attendance\target\mybatis-generator.jar写入,修改文 ...
- nohup java -jar_Linux下运行jar包为什么要用nohup命令
在本地开发完的Java项目如果只是在本地运行是非常方便的,在IDE里执行运行在带有Main函数的Java文件里运行run就可以了.在服务器上运行Java项目就稍微麻烦一些,但是也不复杂.这些都是在刚学 ...
- 使用IntelliJ IDEA 集成阿里提供的 Alibaba Cloud Toolkit插件,实现自动化远程部署Java项目(jar包,war包两种方式)
打开IntelliJ IDEA编译器,点击文件==>点击设置(setting) 在设置页面点击插件(英文应该是 Plugins ,对IntelliJ IDEA汉化感兴趣的同学可以在这个页面搜索 ...
- Linux系统中后台运行java项目jar包指令
Linux系统中后台运行java项目jar包指令 windows环境下后台运行jar包程序: https://blog.csdn.net/qq_36763419/article/details/109 ...
- 【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署
一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多 ...
- linux如何运行jar包、查看jar包进程、停止jar包
linux运行jar包 要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行.而打包成jar包可以直接使用java命令执行.在li ...
- Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
- Windows 10和Linux脚本启动jar包服务器,并设置开机启动
Windows 10和Linux脚本启动jar包服务器,并设置开机启动 现在好多Java服务和应用都是用jar启动,jar打包成的里面会直接带有tomcat,所以可以直接启动,但是如何通过脚本启动并且 ...
- 在Linux服务器运行jar包并一直处于后台执行
在Linux服务器运行jar包并一直处于后台执行: 一.一般情况 jar包在linux的目录为 /jarmanager/xxx.jar 使用在/jarmanager目录下使用 java -jar xx ...
最新文章
- 小程序picker_小程序·云开发实战 - 迷你微博
- Java-消息框显示两整数加减乘除
- 又一家药企IPO被拒,原因竟然是……
- git 如何忽略掉文件夹_#PY小贴士# 我的git仓库为什么每次提交都有很多改动?
- 深入理解 ASP.NET 动态控件 (Part 5 - 编译实验)
- 使用Jquery+CSS实现的表格隔行凸显和当前行高亮效果
- Python 多进程本机共享内存(二)
- Centos 6.5下NIS服务安装配置
- B - 好数 51Nod - 1717
- mvc路由原理 php_s-blog博客系统开发之前端路由配置
- 如何使用记事本和cmd执行java代码
- raft算法 java_raft-java首页、文档和下载 - 分布式一致性算法 Raft 的 Java 实现 - OSCHINA - 中文开源技术交流社区...
- atuo_ptr 实现
- 服务器如何隐藏真实IP地址?服务器隐藏真实IP的方法
- 如何做述职报告/职级跃阶报告
- 打造全球TOD典范城市!成都准备这么干
- stata中使用xsmle命令做空间面板数据hausman检验出现3200错误的解决办法
- Viewpager+Fragment+webview中的输入框不弹出软键盘的坑
- 个人....LATEX常用数学符号
- xxl-job(二)调度中心挂了怎么办