news 2026/6/15 17:45:11

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

作者头像

张小明

前端开发工程师

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/6/15 16:01:37

如何用Docker Calibre Web快速搭建个人云端图书馆

如何用Docker Calibre Web快速搭建个人云端图书馆 【免费下载链接】docker-calibre-web 项目地址: https://gitcode.com/gh_mirrors/do/docker-calibre-web 想要随时随地访问你的电子书库吗?Docker Calibre Web为你提供了一个完美的解决方案,让你…

作者头像 李华
网站建设 2026/6/15 15:59:38

Spotify音乐永久保存终极指南:告别订阅烦恼的3个简单步骤

Spotify音乐永久保存终极指南:告别订阅烦恼的3个简单步骤 【免费下载链接】spotify-downloader Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). 项目地址: https://gitcode.com/gh_mirrors/s…

作者头像 李华
网站建设 2026/6/15 14:13:37

企业微信自动化中的文件与图片发送——绕过系统对话框的底层流处理

在实现企业微信外部群自动化时,发送文本消息相对简单,但涉及到图片、PDF文档或视频的批量发送时,传统的 RPA 方案通常会陷入“操作复杂、速度慢、易报错”的困境。本文将分享如何优化文件发送流程,实现更高效的自动化处理。 ​ Qi…

作者头像 李华
网站建设 2026/6/15 14:12:39

顺企网 item_get - 获取企业详情接口对接全攻略:从入门到精通

顺企网item_get接口是通过企业 ID(ent_id) 获取企业工商信息、资质、联系方式、经营状况等结构化数据的核心接口,适配企业征信、供应商筛选、市场调研、行业数据统计等场景。该接口采用HTTPS 签名认证,数据具备强合规性、字段关联…

作者头像 李华
网站建设 2026/6/7 2:52:20

AI论文写作提示词精选:9大全套合集+高效生成技巧推荐

工具核心特点速览 排名 工具名称 核心优势 适用场景 效率评分 1 aibiye 学术语言优化逻辑结构强化 论文初稿撰写 ⭐⭐⭐⭐⭐ 2 aicheck 深度降重AI痕迹消除 查重修改阶段 ⭐⭐⭐⭐ 3 askpaper 文献智能解析观点提炼 文献综述部分 ⭐⭐⭐⭐ 4 秒篇 极速生…

作者头像 李华
网站建设 2026/6/15 12:28:50

cursor java,零基础入门到精通,收藏这篇就够了

配置 JDK 和 Maven 自动读取 在系统环境变量中正确配置了 JAVA_HOME 和 MAVEN_HOME 一般 Cursor 会自动识别这些配置 若 Cursor 没有自动读取到 JDK 和 Maven 配置,需要手动配置 手动配置 打开 settings.json 文件 按 Ctrl Shift P ,输入 Prefe…

作者头像 李华