# frank-dcdb **Repository Path**: staticsnull/frank-dcdb ## Basic Information - **Project Name**: frank-dcdb - **Description**: 督查督办 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-09-10 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 单模块 * Springboot * Mybatis * Shiro * Thymeleaf * Bootstrap * nohup java -jar your-application.jar > app.log 2>&1 & ## Linux后台运行jar包 在 Linux 中,要实现关闭终端后 JAR 包仍能继续运行,核心是让进程脱离终端的控制。最常用且可靠的命令是结合 nohup 和后台运行符号 &,具体如下: 打开终端,输入: ```bash # 查看后台运行的 JAR 进程 ps -ef | grep frank-*.jar # 停止进程(根据 PID) kill -9 进程ID # 启动 nohup java -jar your-application.jar > app.log 2>&1 & # 完整启动命令: nohup /data/java/jdk-17.0.12/bin/java -jar /data/frank/jar/frank-dcdb-3.0.7.jar > app.log 2>&1 & ``` ### 命令解析: - `nohup`:忽略终端关闭时发送的 `SIGHUP` 信号,防止进程被终止; - `java -jar your-application.jar`:运行 JAR 包的核心命令; - `> app.log`:将程序的标准输出(日志)重定向到 `app.log` 文件; - `2>&1`:将错误输出(如异常信息)也重定向到 `app.log`(与标准输出合并); - 末尾的 `&`:将进程放入后台运行。 ### 后续管理: 1. **查看后台进程**: ```bash ps -ef | grep your-application.jar ``` 或更简洁: ```bash pgrep -f your-application.jar ``` 2. **停止进程**(根据上一步得到的进程 ID) ```bash kill -9 进程ID ``` 3. **查看运行日志**: ```bash tail -f app.log # 实时查看最新日志 cat app.log # 查看全部日志 ``` ### 进阶方案(推荐用于生产环境): 如果需要更稳定的管理(如开机自启、崩溃自动重启),可以将 JAR 包注册为系统服务(以 systemd 为例): 1. 创建服务文件: ```bash sudo vim /etc/systemd/system/myapp.service ``` 2. 写入配置(替换路径和名称): ```ini [Unit] Description=My Java Application After=network.target [Service] User=用户名 WorkingDirectory=/path/to/jar/directory ExecStart=/usr/bin/java -jar /path/to/your-application.jar Restart=always # 崩溃时自动重启 [Install] WantedBy=multi-user.target ``` 3. 启用并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp # 设置开机自启 ``` 这种方式不仅能脱离终端运行,还能通过 `systemctl` 方便地管理进程状态。