当前位置: 首页 > 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'

 

相关文章:

  • 桌面快捷图标左下角有蓝色问号解决方法
  • 将十六进制字符串转换为二进制字符串的方法(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学习笔记】循环结构
  • 外卖江湖战火重燃,骑手、商家、消费者在“摇摆”什么?
  • 税率飙至3500%!美国双反大棒重击东南亚光伏,中企如何应对
  • 中国墨西哥商会副执行主席:深耕中国市场18年,对未来充满信心
  • 去年净流入人口达45万,居各省份第一:浙江带来哪些启示?
  • 2025年度“沪惠保”今日开售:保费维持129元/人,进一步扩增国内外特药种类
  • 一季度减持阿里、美团,加仓顺丰,张坤:与其纠结经济,不如着眼企业