作为Java程序员,经常会面临一个选择,打完jar包,测试或者上线生产的时候,java –jar or nohup java -jar?


java -jar a.jar &

直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。

这种情况适合短时间测试用。


nohup java -jar a.jar&

hangup (挂断),终端退出时会发送 hangup 信号来通知其关闭所有子进程。

nohup(不挂断,忽略挂断信号)

nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。

一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename2>&1"来更改缺省的重定向文件名。

这种情况适合在生产环境长时间运行。