news 2026/4/16 10:59:15

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

作者头像

张小明

前端开发工程师

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/4/11 2:20:05

MacOS NTFS读写终极解决方案:NTFSTool完整技术指南

MacOS NTFS读写终极解决方案:NTFSTool完整技术指南 【免费下载链接】ntfstool A ntfs tool for mac 项目地址: https://gitcode.com/gh_mirrors/nt/ntfstool 在跨平台工作环境中,Mac用户常常面临一个令人头疼的问题:无法直接读写Windo…

作者头像 李华
网站建设 2026/4/6 1:09:06

RDA在交通领域的创新:车辆数据资产化如何优化城市出行系统?

【摘要】真实数据资产(RDA)正将城市交通推向一个新纪元,其核心是将车辆的动态运行数据封装为可信、可流通的标准化数字资产。这不仅是技术的革新,更是一场关于生产要素的深刻变革,它通过重塑路网效率、市场机制与城市治…

作者头像 李华
网站建设 2026/4/15 6:21:32

3大秘诀:Winhance中文版如何让Windows系统性能飙升300%?

3大秘诀:Winhance中文版如何让Windows系统性能飙升300%? 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. PowerShell GUI application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/4/16 10:55:15

Dify凭证管理最佳实践(读取优化全解析)

第一章:Dify凭证管理的核心价值与读取挑战在现代AI应用开发中,Dify作为低代码平台,其凭证管理机制承担着连接外部服务、保障数据安全和实现身份鉴别的关键职责。有效的凭证管理不仅提升了系统的可维护性,也避免了敏感信息的硬编码…

作者头像 李华
网站建设 2026/4/16 0:41:35

IndexTTS 2.0支持Stream流式输出吗?实时语音生成可行性探讨

IndexTTS 2.0支持Stream流式输出吗?实时语音生成可行性探讨 在直播带货、AI虚拟主播对话、实时字幕配音等场景中,用户越来越无法忍受“输入完文本后等待数秒才听到第一句语音”的体验。理想的语音合成系统应当像人类说话一样——边思考边发声。这种“说一…

作者头像 李华
网站建设 2026/4/12 19:23:03

3分钟精通:Winhance系统优化工具实战指南

3分钟精通:Winhance系统优化工具实战指南 【免费下载链接】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…

作者头像 李华