ubuntu 查看进程是否运行的命令有多少

在 Ubuntu 中,查看进程是否运行的方法有多种,以下是常见的 8 种方式,按场景分类整理:


1. 快速检查(推荐脚本使用)

pgrep 命令

pgrep <进程名或模式>
# 示例:检查 nginx 是否运行
if pgrep nginx > /dev/null; then
  echo "Nginx 正在运行"
else
  echo "Nginx 未运行"
fi

# 统计进程数量(返回数量,0 表示未运行)
pgrep -c nginx
pidof 命令

pidof <进程名>
# 示例:检查 MySQL 是否运行
if pidof mysqld > /dev/null; then
  echo "MySQL 正在运行"
fi

2. 交互式查看

ps + grep 组合

ps aux | grep <进程名或关键字>
# 示例:检查 Firefox 进程
ps aux | grep -i firefox
# 避免 grep 自身干扰的技巧:
ps aux | grep '[f]irefox'
top / htop 实时监控

top # 动态查看所有进程(按 q 退出)
htop # 增强版 top(需安装:sudo apt install htop)

3. 服务状态检查(仅限系统服务)

systemctl(systemd 服务)

systemctl status <服务名>
# 示例:检查 Apache2 服务状态
systemctl status apache2
# 返回 "active (running)" 表示运行中

4. 进程树查看

pstree 命令

pstree | grep <进程名>
# 示例:检查 SSH 服务进程
pstree | grep sshd

5. 通过 /proc 目录(底层方法)

ls /proc | grep <进程名或PID>
# 示例:检查 PID 为 1234 的进程是否存在
ls /proc/1234
# 若存在目录则表示进程运行

6. 发送测试信号(静默检查)

kill -0 命令

kill -0 $(pgrep <进程名>) 2>/dev/null && echo "进程存在" || echo "进程不存在"
# 示例:检查 Nginx 进程
kill -0 $(pgrep nginx) 2>/dev/null && echo "Nginx 运行中"

7. 结合脚本工具

pkill -0(静默检查)

pkill -0 <进程名> && echo "进程存在" || echo "进程不存在"
# 示例:检查 Python 脚本
pkill -0 "python3 script.py" && echo "脚本运行中"

总结对比

方法适用场景特点
pgrep/pidof脚本自动化、快速判断直接返回 PID,适合条件判断
ps + grep交互式查看详细信息可查看完整命令行,但需注意过滤干扰项
systemctl检查系统服务状态仅适用于 systemd 管理的服务
top/htop实时监控资源占用动态查看 CPU、内存等资源
kill -0静默测试进程存在性不干扰进程运行,适合脚本中的逻辑判断

根据需求选择合适的方法,脚本中推荐 pgrep 或 pidof,交互式调试可用 ps 或 htop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值