漂流的老妖怪

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

 

在linux服务器上运行Jar文件时通常的方法是:

$ java -jar test.jar
//这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务

jar在后台运行的方法:

方法一:

$ nohup java -jar test.jar &
//nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
//当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
//除非另外指定了输出文件。

方法二:

$ nohup java -jar test.jar >temp.txt &
//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建

jobs命令和 fg命令:

$ jobs
//那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
//如果想将某个作业调回前台控制,只需要 fg + 编号即可。
$ fg 2

查看某端口占用的线程的pid

netstat -nlp |grep :8080

 

出现:nohup: ignoring input and redirecting stderr to stdout

nohup java -jar test.jar >temp.txt &
改成
nohup java -jar test.jar >temp.txt 2>&1 &

解决linux环境下nohup: redirecting stderr to stdout问题

我的启动命令是这样的:
nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out &现在指行这个命令,会给我产生两个文件,一个中logs/myserver.out,另一个是nohup.out文件。
怎样才能让它不产生nohup.out文件呢。
网上搜了半天,据说好象可以把后面的 “&” 改成 “2>&1 &”,于是把启动命令改成如下:

nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out 2>&1 &再次执行,问题解决。

解释如下:

2>
表示把标准错误(stderr)重定向,标准输出(stdout)是1。

尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。

2> &1
1> &2
2> stderr.log
1> stdout.log

 

posted on   漂流的老妖怪  阅读(19076)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
 
点击右上角即可分享
微信分享提示