Linux运行jar包后 进行其它操作 jar包就断开了
时间: 2023-05-19 12:02:40 浏览: 85
这可能是因为您在运行 jar 包时使用了 nohup 命令,导致 jar 包在后台运行。如果您想在 jar 包运行时进行其它操作,可以使用 screen 命令创建一个新的终端窗口,然后在该窗口中进行操作,这样 jar 包就不会断开了。
相关问题
linux后台运行java -jar
在Linux环境下,如果你想让Java应用程序作为后台进程持续运行,特别是通过JAR文件启动,通常会使用nohup(no hang up)命令结合&(背景运行符)一起使用。以下是基本步骤:
1. 首先,找到你的JAR文件的完整路径。例如,假设JAR文件名为`myapp.jar`,位于`/home/user/applications`目录下:
```
/home/user/applications/myapp.jar
```
2. 然后,在终端中,使用`nohup`命令执行`java -jar`,后跟JAR文件路径,如下所示:
```
nohup java -jar /home/user/applications/myapp.jar &
```
3. `nohup`指令的作用是在用户断开与终端的连接时,仍然允许程序继续运行,而不会因为失去控制台连接而停止。`&`符号则告诉系统在后台运行这个命令。
4. 当你按下Enter键后,Java应用就会开始运行并在后台默默工作,即使你关闭当前终端窗口也会影响不到它。
5. 可以查看nohup的日志文件(默认在`/var/log/nohup.out`),了解程序的运行状态。
liunx下服务器如何让jar一直运行
在Linux下,为了让Java应用JAR文件作为守护进程持续运行,通常可以采用以下步骤:
1. **打包成可执行 jar**:
使用`jar`命令添加`main-Class`元数据,指定主类名,以便可以直接通过jar文件启动。例如:
```
jar cvf myapp.jar MainClass
```
2. **创建一个shell脚本**(比如`run.sh`)作为启动程序:
```bash
#!/bin/bash
nohup java -jar myapp.jar &> log.txt &
```
`nohup`命令使得进程在用户断开连接后依然能继续运行,并将输出重定向到`log.txt`。
3. **设置权限**:
```
chmod +x run.sh
```
4. **添加到开机启动**(可选):
将`run.sh`放入系统初始化脚本目录(如`/etc/init.d`),然后使用`update-rc.d`命令使其随系统启动:
```sh
sudo update-rc.d myapp defaults
```
5. **启动服务**:
```sh
sudo service myapp start
```
6. **监控日志**:
如果需要实时查看日志,可以使用`tail -f log.txt`。
阅读全文