Linux 中启动jar包命令

Linux下启动jar包真的很简单。
只需使用这个命令:
bash java yourapplication.jar
例如,如果您想启动一个名为 test.jar 的包,请输入:
bash java测试.jar
在后台运行
不锁定窗口
如果您使用此符号:
bash java 测试.jar &
这样ssh窗口就不会被锁定。
但如果你关闭这个窗口,程序就会停止。
例如,我在2 02 3 年1 0月2 6 日2 0:00尝试了一下,当我关闭终端时,程序实际上停止了。

窗口关闭后程序继续运行
这个nohup命令很强大:
bash nohup java test.jar &
即使您注销帐户或关闭终端,程序仍会继续运行。
默认情况下,输出将写入 nohup.out。
如果要更改位置,只需使用 > 符号指定即可。
例如:
bash nohup java test.jar > mylog.txt &
我2 02 3 年1 0月2 7 日上午1 0点试了一下,关掉终端,程序果然没有停止。
mylog.txt 有输出。

查看后台任务
使用此命令:
bash 工作
将列出所有后台任务,向您显示它们的数量和状态。
要将其归还给前台,只需使用 fg 并添加号码即可。
例如,我在2 02 3 年1 0月2 7 日1 5 :00尝试了一下。
后台正在运行一个任务,编号为1 我输入fg 1 ,它就出现了。

真实场景
如果你在 Jenkins 或 GitLabCI 比赛,你应该特别注意。
不要让程序卡在那里。
例如,我于2 02 3 年1 0月2 8 日在Jenkins中尝试了一个项目,使用nohup(java test.jar > log.txt &),但它被卡住了。
后来我意识到依赖项没有正确安装。
改完后,再试一下就正常了。

总之,根据你想要做什么,选择合适的启动方式,后台运行,使用nohup,管理日志,然后查看后台任务。

linux运行jar关闭连接不停止

说白了,为了防止Linux Jar守护进程在终端关闭时停止,我们主要依靠两个技巧:nohup加&,或者使用screen/tmux。

先说最重要的nohup。
去年我们依靠它来运行 3 ,000 级别的服务。
只需直接命令 nohup java -jar app.jar & 即可。
原理很简单——nohup 会忽略终端关闭信号(SIGHUP),所以即使你用 Ctrl+C 关闭终端,进程仍然在那里运行。
默认情况下,输出定向到 nohup.out。
如果你害怕文件名冲突,可以添加重定向>output.log 2 >&1 另一点是,使用 & 只会将进程放入后台。
当终端断开连接时它仍然会挂起。
和nohup搭配起来真的很耐用。
但是,有一个细节至关重要:如果 Jar 程序需要与用户交互,例如等待输入,那么后台操作肯定会中断,您将需要使用诸如 display 或 tmux 之类的会话工具。

一开始我以为nohup就够了,后来发现错了——如果程序需要经常重启(比如定时任务),我每次都得手动做nohup并重启,非常麻烦。
这时,屏幕上就显示出了它的威力。
创建一个会话作为聊天室。
在其上运行程序后,Ctrl+A+D 将其拆分。
终端关闭但它仍然有效。
重置时只需按 screen -r 即可。
setsid也是个无情的角色,但是很少有人用。
语法是setsid java -jar app.jar。
为进程创建一个新的父进程(新会话),并且与原始终端没有连接。

等一下,还有一件事 - 您需要知道 PID 才能检查并终止进程。
使用 ps aux | grep app.jar 查找 PID,然后使用 Kill 命令并添加数字 PID。
如果程序继续运行,kill -9 是最后的手段,但不要经常使用它,因为它会把程序炸成碎片。
要查看日志,只需 tail -f nohup.out 即可实时滚动。

一个陷阱:使用nohup时,默认输出文件名是nohup.out。
如果删除当前目录,程序可能会将日志写入/root目录,这将是一场灾难。
建议添加 > app.log 2 >&1 并自行命名。

linux下jar包启动命令,我用nohup java -jar + *.jar命令启动,此时命令

等等,还有一件事。
上次我在办公室的现有服务器上运行数据处理脚本,运行了 3 0 多个小时。
我刚刚使用了 nohuppython script.py& ,看起来没问题,所以我就运行了它。
结果半夜突然停电了。
当我早上醒来并重新启动服务器时,我注意到脚本仍在运行并且刚刚完成其工作。
你看,有时这些小技巧实际上可以解决大问题。
该服务器于2 01 9 年购买,使用时间约5 年。
内存还是4 GB。
我突然想到一个想法。
你怎么知道当时的剧本是否错误?