首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 后台运行jar

在Linux系统中,后台运行JAR(Java Archive)文件可以通过多种方式实现。以下是一些常见的方法:

1. 使用 nohup 命令

nohup 命令可以让进程忽略挂起信号(SIGHUP),即使终端关闭,进程也会继续运行。

代码语言:txt
复制
nohup java -jar your-application.jar > output.log 2>&1 &
  • nohup:忽略挂起信号。
  • java -jar your-application.jar:运行JAR文件。
  • > output.log:将标准输出重定向到 output.log 文件。
  • 2>&1:将标准错误重定向到标准输出。
  • &:将进程放到后台运行。

2. 使用 screentmux

screentmux 是终端复用工具,可以让你在一个终端会话中运行多个终端会话,并且可以在断开连接后重新连接。

使用 screen

代码语言:txt
复制
screen -S mysession
java -jar your-application.jar

然后按 Ctrl+A 再按 D 键,将 screen 会话放到后台。

重新连接到 screen 会话:

代码语言:txt
复制
screen -r mysession

使用 tmux

代码语言:txt
复制
tmux new -s mysession
java -jar your-application.jar

然后按 Ctrl+B 再按 D 键,将 tmux 会话放到后台。

重新连接到 tmux 会话:

代码语言:txt
复制
tmux attach -t mysession

3. 使用系统服务(Systemd)

你可以将JAR文件配置为系统服务,这样它就可以在系统启动时自动运行,并且可以通过系统管理工具进行管理。

创建一个服务文件 /etc/systemd/system/myapp.service

代码语言:txt
复制
[Unit]
Description=My Java Application
After=network.target

[Service]
User=your-user
ExecStart=/usr/bin/java -jar /path/to/your-application.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

然后重新加载 systemd 配置并启动服务:

代码语言:txt
复制
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

优势

  • 持久性:即使终端关闭,进程也会继续运行。
  • 可管理性:可以通过系统管理工具进行管理,如 systemctl
  • 日志记录:可以将输出重定向到日志文件,便于调试和监控。

应用场景

  • 长时间运行的服务:如Web应用、后台任务处理等。
  • 自动化部署:通过系统服务实现自动化启动和管理。

常见问题及解决方法

  • 进程无法启动:检查日志文件(如 output.log)以获取错误信息。
  • 进程意外终止:使用 systemdsupervisor 等工具进行进程监控和自动重启。
  • 资源限制:确保系统有足够的资源(如内存、CPU)来运行JAR文件。

通过以上方法,你可以轻松地在Linux系统中后台运行JAR文件,并确保其稳定性和可管理性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux后台运行jar程序

Linux后台运行jar程序在Linux系统中,有时候我们需要将Java程序以后台进程的方式运行,以便在关闭终端或退出登录时仍然保持程序的运行状态。...本文将介绍如何在Linux中后台运行一个Java的jar程序。准备工作在开始之前,确保您的Linux系统中已经安装了Java运行环境(JRE 或 JDK)。...步骤二:在后台运行jar程序要在后台运行jar程序,可以使用以下命令:shellCopy code$ nohup java -jar YourProgram.jar > output.log 2>&1...&用于将命令放入后台执行。 这样,您的jar程序就会在后台运行,并将输出写入output.log文件中。您可以使用tail -f output.log命令来查看实时日志。...通过以上步骤,您就可以在Linux系统中成功地将一个Java的jar程序以后台进程的方式运行起来。示例代码,以帮助理解:shellCopy code#!

98910
  • Linux服务器后台运行jar包

    转载自https://juejin.im/post/5b47411ee51d45190570ce6d 最终的运行命令: nohup java -jar xxx.jar >logs.txt & 复制代码...1.首先最基本的运行jar包命令是: java -jar xxx.jar 复制代码 这个命令会锁定命令窗口,只能看到当前运行的输出信息。而无法发送其他指令。...2.让jar包后台运行 用"&"符号结尾表示,让程序在后台运行。 这样的话,命令窗口就不会被锁定,而可以发送其他指令,但是当窗口关闭时,后台运行的程序依然会被停止。...nohup命令:nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断信号。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。...如果忘了进程号,可以通过 ps -ef|grep xxx.jar 复制代码 来查看当前运行的jar包程序进程号。

    4.6K10

    Linux jar 运行与关闭

    最近在做一个项目,由于项目团队很多人,分工给我打包了一个jar服务器端的文件,然后用本地测试可以,然后再服务器运行,由于服务器是Linux的,这就体现了java的可移植性强的优点,但是执行运行命令后,关闭...ssh窗口再次我请求数据的时候,程序自动关闭了,后来查阅资料才知道,这是Linux的原因。...一些简单的操作linux jar包命令 1、执行jar包的命令和在windows操作系统上是一样的,都是java -jar xxxx.jar。...2、将jar程序设置成后台运行,并且将标准输出的日志重定向至文件consoleMsg.log。...nohup java -jar arserver-0.0.1-SNAPSHOT.jar >consoleMsg.log 2>&1 & 3、如果想杀掉运行中的jar程序,查看进程命令为: ps aux|

    8K61

    Linux 运行jar包命令

    方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定?...方式二 java -jar shareniu.jar & &代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行?...方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到...方式四 nohup java -jar shareniu.jar >temp.txt & 解释下 >temp.txt command >out.file command >out.file是将command...可通过jobs命令查看后台运行任务 jobs 那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。 如果想将某个作业调回前台控制,只需要 fg + 编号即可。

    6.9K20

    利用nohup后台运行jar文件包程序

    4 次查看 Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定?...方式二 java -jar XXX.jar & &代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行?...方式三 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到...方式四 nohup java -jar XXX.jar >temp.txt & 解释下 >temp.txt command >out.file    command >out.file是将command...可通过jobs命令查看后台运行任务 jobs 那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。  如果想将某个作业调回前台控制,只需要 fg + 编号即可。

    3.3K30

    linux命令后台运行

    有两种方式: 1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行 一、 简介 Linux...我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。...而 Linux 提供了 fg 和bg 命令,让你轻松调度正在运行的任务。...kill 管理后台的任务 二、& 在Linux中,当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。.../test.sh & 在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。

    9.7K20

    linux 后台运行方法总结

    导言 多种后台运行方法总结,nohup, disown, setsid, (...&), screen, tmux 问题现象 远程登录服务器时常需要长时间运行任务,由于网络不稳定或logout等因素造成连接断开...当前台已经执行任务时,使用Ctrl z将当前进程挂起到后台暂停运行,使用bg %1命令使后台挂起命令继续运行,再使用disown -h %1使进程忽略SIGHUP信号。...另,使用 disown %1 也可达到相同效果,不过当前任务会从任务列表移除,但仍可以通过ps查看进程 Tips: 在我们的日常工作中,我们可以用 Ctrl z 来将当前进程挂起到后台暂停运行,执行一些别的操作...,然后再用 fg 来将挂起的进程重新放回前台(也可用 bg 来将挂起的进程放在后台)继续运行。...这样我们就可以在一个终端内灵活切换运行多个任务,这一点在调试代码时尤为有用。因为将代码编辑器挂起到后台再重新放回时,光标定位仍然停留在上次挂起时的位置,避免了重新定位的麻烦。

    3.8K20

    SpringBoot2.x基础篇:Linux后台运行Jar以及Jvm参数调优

    可执行文件后,如果在Linux服务器环境下,可直接使用java -jar xxx.jar命令运行应用程序,不过当我们关闭命令窗口后启动中的应用程序也会停止,那我们需要通过什么方式才可以成为后台服务方式运行呢...推荐阅读 SpringBoot2.x基础篇:开发你的第一个SpringBoot应用程序 SpringBoot2.x基础篇:将应用程序打包为可执行Jar SpringBoot2.x基础篇:Linux后台运行...Jar以及Jvm参数调优 Nohup命令 Linux系统或者OS X都提供了一个解决应用程序后台运行的命令,那就是nohup,我们使用该命令可以直接将要执行的任务放置在后台运行,想要停止运行时需要通过结束...注意事项:appending output to nohup.out这句话很有必要了解下,要知道我们之前通过java -jar xxx.jar直接运行应用程序时会有运行日志输出到控制台的,我们通过nohup.../boot-jar.sh target/service-application-0.0.1-SNAPSHOT.jar 由于脚本内添加了tail命令,应用程序启动后会自动输出运行日志。

    1.6K30

    linux运行jar包的命令_linux部署jar包的几种方式

    要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。...在linux系统中运行jar包主要有以下几种方式。 一、java -jar XXX.jar 这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。...二、java -jar XXX.jar & &代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。...三、nohup java -jar XXX.jar & 使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。...三、nohup java -jar XXX.jar >temp.out & >temp.out的意思是将日志输出重定向到temp.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。

    7.1K20
    领券