当前位置: 首页 > news >正文

在Linux中如何通过nohup命令监控进程状态

在 Linux 中,nohup 是一个常用工具,常用于在后台运行程序,使其脱离终端控制,即使你关闭了 SSH 或终端窗口,程序也不会被中断。不过,nohup 本身不具备监控功能,它只是确保进程持续运行。要监控进程状态,还需结合其他工具使用。

下面我给你系统讲一下:如何使用 nohup 启动进程 + 查看和监控其状态。

一、使用 nohup 启动后台进程

示例:启动一个 Python 脚本

nohup python3 your_script.py > output.log 2>&1 &

含义:

nohup:忽略挂起信号

> output.log 2>&1:标准输出和错误输出都写入日志

&:让程序在后台运行

启动后会生成一个默认日志文件(如 nohup.out),或你指定的 output.log。

 二、如何查看进程是否在运行

方法 1:通过 ps 命令查看

ps aux | grep your_script.py

你会看到包含 python3 your_script.py 的一行,说明它在运行。

方法 2:用 pgrep 快速找进程号(PID)

pgrep -f your_script.py

如果返回 PID,则进程存活。没有返回说明进程没在运行。

方法 3:查看 nohup.out 或自定义日志输出

tail -f output.log

可以实时查看程序是否有输出、是否报错、运行进度如何。

三、持续监控建议

1. 用 top 或 htop 查看资源消耗

top -p

或者

htop  # 更好用的交互式界面,需安装

2. 用 watch 命令定时查看进程状态

watch -n 5 'pgrep -fl your_script.py'

每 5 秒自动刷新查看进程是否存在。

四、建议搭配 Supervisor 或 systemd 使用(更专业)

nohup 虽方便,但不具备自动重启、日志轮转等功能。

推荐部署服务时用:

supervisor → 简单易配

systemd → 现代 Linux 系统的默认进程管理器

比如 supervisor 的配置样例:

[program:myjob]
command=/usr/bin/python3 /home/user/your_script.py
autostart=true
autorestart=true
stdout_logfile=/var/log/myjob.log
stderr_logfile=/var/log/myjob.err

总结一下:

启动程序:nohup ./run.sh > run.log 2>&1 &

查看是否还在跑:`ps aux

查看输出:tail -f run.log

持续监控:watch -n 5 'pgrep -fl run.sh'

 

http://www.dtcms.com/a/150968.html

相关文章:

  • 桌面快捷图标左下角有蓝色问号解决方法
  • 将十六进制字符串转换为二进制字符串的方法(Python,C++)
  • ZYNQ笔记(十三):双核 AMP 通信实验
  • 【IDEA】怎么修改IDEA的JDK版本
  • tomcat远程Debug
  • 3.1 Agent定义与分类:自主Agent、协作Agent与混合Agent的特点
  • 高等数学第一章---函数与极限(1.3 函数的极限)
  • 海量粒子特效解决方案:VEG
  • Java线程中断机制详解
  • JAVA设计模式——(三)桥接模式
  • 桥接模式:分离抽象与实现的独立进化
  • C语言中的递归1.0
  • 时序数据库IoTDB自研的Timer模型介绍
  • 基于自主大型语言模型代理的AIoT智能家居
  • 网络原理 - 5(TCP - 2 - 三次握手与四次挥手)
  • 【笔记】CentOS7部署K8S集群
  • 经验分享-上传ios的ipa文件
  • 2.2 主流大模型架构:GPT、DeepSeek、GLM、Claude、QwQ、Qwen2.5-Max等模型的比较与应用场景
  • sizeof和strlen的区别
  • 【Java学习笔记】循环结构
  • 翻倍缠论系统+拐点多空雷达,组合指标的使用操盘技术
  • J1800主板刷黑群晖
  • 基于VTK的光线投影法体绘制
  • SSE(Server-Sent Events)技术详解:轻量级实时通信的全能方案
  • Android将启动画面实现迁移到 Android 12 及更高版本
  • gbase8s存储学习一 rootdbs存储结构以及寻址分析
  • 【Java面试笔记:基础】10.如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
  • Android 中解决 RecyclerView 和子控件之间的滑动冲突问题
  • 文档构建:Sphinx全面使用指南 — 进阶篇
  • Android TV 输入框架(TIF)深度解析与实践指南