news 2026/8/10 6:04:03

后台运行程序:让程序不受终端影响

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
后台运行程序:让程序不受终端影响

后台运行程序:让程序不受终端影响

SSH断开,程序就停了?

今天聊聊怎么让程序在后台持续运行。

问题原因

当你SSH登录服务器运行程序,断开SSH后程序会收到SIGHUP信号然后退出。

方法一:nohup命令

最简单的方法:

nohup命令&

例子:

nohupjava-jarapp.jar&
  • nohup:忽略SIGHUP信号
  • &:后台运行

输出会保存到nohup.out文件。

指定输出文件:

nohupjava-jarapp.jar>app.log2>&1&

查看后台进程:

jobspsaux|grepapp.jar

方法二:screen命令

screen可以创建一个"虚拟终端",断开后程序继续运行。

安装:

aptinstallscreen# Ubuntuyuminstallscreen# CentOS

基本用法:

# 创建新会话screen-Smyapp# 在会话里运行程序java-jarapp.jar# 按Ctrl+A然后按D,脱离会话(程序继续运行)# 查看会话列表screen-ls# 重新连接会话screen-rmyapp

常用快捷键(先按Ctrl+A):

  • d:脱离会话
  • k:关闭当前窗口
  • ?:帮助

方法三:tmux命令(推荐)

tmux比screen功能更强,是现代化的选择。

安装:

aptinstalltmux# Ubuntuyuminstalltmux# CentOS

基本用法:

# 创建新会话tmux new-smyapp# 运行程序java-jarapp.jar# 按Ctrl+B然后按D,脱离会话# 查看会话tmuxls# 重新连接tmux attach-tmyapp# 关闭会话tmux kill-session-tmyapp

常用快捷键(先按Ctrl+B):

  • d:脱离
  • c:新建窗口
  • n:下一个窗口
  • p:上一个窗口
  • %:左右分屏
  • ":上下分屏

方法四:systemd服务(生产推荐)

正式环境推荐把程序注册成systemd服务。

创建服务文件:

sudovim/etc/systemd/system/myapp.service
[Unit] Description=My Application After=network.target [Service] Type=simple User=app WorkingDirectory=/opt/app ExecStart=/usr/bin/java -jar /opt/app/myapp.jar Restart=always RestartSec=10 [Install] WantedBy=multi-user.target

启用服务:

sudosystemctl daemon-reloadsudosystemctlenablemyappsudosystemctl start myapp

管理服务:

systemctl start myapp systemctl stop myapp systemctl restart myapp systemctl status myapp# 查看日志journalctl-umyapp-f

选择建议

场景推荐方法
临时运行脚本nohup
调试开发tmux/screen
正式生产systemd

查看后台进程

# 查看所有进程psaux# 查找特定进程psaux|grepjavapgrep-fmyapp# 结束进程kill进程IDkill-9进程ID# 强制

远程管理

我用星空组网管理多台服务器,经常需要远程查看后台进程:

# 查看各服务器Java进程foripin10.26.1.{10..15};doecho"===$ip==="sshroot@$ip"ps aux | grep java | grep -v grep"done

小结

后台运行程序的方法:

  1. 临时用nohup 命令 &
  2. 调试用:tmux或screen
  3. 生产用:systemd服务

记住:生产环境一定要用systemd,可以开机自启、崩溃自动重启。

有问题评论区交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 4:36:05

群晖NAS第三方硬盘兼容性深度解锁指南:从问题诊断到性能优化

群晖NAS第三方硬盘兼容性深度解锁指南:从问题诊断到性能优化 【免费下载链接】Synology_HDD_db 项目地址: https://gitcode.com/GitHub_Trending/sy/Synology_HDD_db 群晖NAS硬盘兼容性限制是许多技术用户面临的痛点问题,当您精心挑选的高性价比…

作者头像 李华
网站建设 2026/7/30 8:07:21

5步诊断修复法:拯救戴森电池32次红灯故障的完整指南

5步诊断修复法:拯救戴森电池32次红灯故障的完整指南 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 你是否遇到过戴森吸尘器突…

作者头像 李华
网站建设 2026/8/1 12:29:54

Vue3移动端开发终极指南:10分钟快速上手H5项目模板

在移动互联网时代,开发一个适配多端、体验优秀的移动应用是每个前端开发者的必备技能。然而从零开始搭建项目架构往往需要配置Vue3、Vite、TypeScript、Tailwindcss等众多工具,耗费大量时间和精力。今天介绍的Vue3 H5模板正是为解决这一痛点而生&#xf…

作者头像 李华
网站建设 2026/7/30 12:23:41

揭秘Dify容器化测试难题:如何精准配置环境实现99%用例通过率

第一章:Dify容器化测试的挑战与意义在现代软件交付流程中,将 Dify 这类 AI 应用平台进行容器化部署已成为提升可移植性与环境一致性的关键实践。然而,在实现容器化测试的过程中,团队面临诸多挑战,包括依赖隔离、服务间…

作者头像 李华
网站建设 2026/8/10 0:15:45

从卡顿到流畅:我的Windows系统优化之旅

从卡顿到流畅:我的Windows系统优化之旅 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. PowerShell GUI application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh_C…

作者头像 李华
网站建设 2026/8/9 0:39:45

OpenBoardView专业指南:解锁.brd电路板文件查看的无限可能

OpenBoardView专业指南:解锁.brd电路板文件查看的无限可能 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 在电子设计与硬件维修的专业领域,.brd文件的高效查看与分析是工程师日常工…

作者头像 李华