一文详解Linux如何查询服务和定位可执行文件

 更新时间:2025年11月18日 08:40:14   作者:ayaya_mana  
这篇文章主要为大家详细介绍了Linux中查询服务和定位可执行文件的相关命令,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

1 查看所有运行服务

1.1 使用systemd系统

# 查看所有正在运行的服务
systemctl list-units --type=service --state=running

# 查看所有服务(包括未运行的)
systemctl list-unit-files --type=service

1.2 使用传统SysVinit系统

# 查看所有服务状态
service --status-all

# 或使用init.d目录
ls /etc/init.d/

2 查看特定服务的详细信息

使用systemctl status命令可以获取服务的详细状态信息,包括主进程ID和可执行文件路径【turn0search8】:

systemctl status nginx.service

输出示例:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2024-01-10 14:30:45 CST; 2 days ago
 Main PID: 1237 (nginx)
    Tasks: 3 (limit: 4915)
   Memory: 10.5M
   CGroup: /system.slice/nginx.service
           ├─1237 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─1238 nginx: worker process
           └─1239 nginx: worker process

3 定位服务安装文件位置

3.1 通过进程ID定位可执行文件

获取进程PID

ps -ef | grep nginx
# 或使用pgrep
pgrep nginx

通过/proc文件系统查看

ls -l /proc/1237/exe
# 或使用readlink获取真实路径
readlink -f /proc/1237/exe

使用lsof命令

lsof -p 1237 | grep txt

3.2 通过包管理器查询安装文件

RPM系统(CentOS/RHEL/Fedora)

# 查看软件包安装的所有文件
rpm -ql nginx

# 查看未安装包将安装的文件
rpm -qpl nginx-package.rpm

Debian系统(Ubuntu/Debian)

# 查看软件包安装的所有文件
dpkg -L nginx

# 查看未安装包将安装的文件
dpkg -c nginx-package.deb

3.3 使用which和whereis命令

# 查找可执行文件路径
which nginx

# 查找二进制文件、源文件和帮助文档位置
whereis nginx

4 高级技巧与实用方法

4.1 查看服务配置文件位置

# 对于systemd服务
systemctl show nginx --property=FragmentPath

# 查看环境文件位置
systemctl show nginx --property=EnvironmentFile

4.2 使用pstree查看进程树

# 显示进程树及PID
pstree -p | grep nginx

# 显示完整命令行参数
pstree -a | grep nginx

4.3 查找服务相关所有文件

# 结合find命令查找相关文件
find / -name "*nginx*" 2>/dev/null

# 查找配置文件
rpm -qc nginx  # RPM系统
dpkg -L nginx | grep -E '\.conf$'  # Debian系统

5 应用示例

定位Nginx服务

查看服务状态

systemctl status nginx

获取主进程PID(假设为1237)

定位可执行文件

readlink -f /proc/1237/exe
# 输出:/usr/sbin/nginx

查找配置文件

rpm -qc nginx  # 或 dpkg -L nginx | grep conf

列出所有安装文件

rpm -ql nginx  # 或 dpkg -L nginx

6 常见问题与解决方案

问题解决方案
权限不足使用sudo执行命令或切换到root用户
找不到服务确认服务名称是否正确,使用通配符搜索
符号链接问题使用readlink -f获取真实路径
容器环境在容器内执行相同命令或使用docker inspect

到此这篇关于一文详解Linux如何查询服务和定位可执行文件的文章就介绍到这了,更多相关Linux查询服务和定位可执行文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    这篇文章主要介绍了在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • CentOS虚拟机开机出现问题及解决过程

    CentOS虚拟机开机出现问题及解决过程

    文章介绍了CentOS虚拟机开机出现问题的解决方法,通过输入命令xfs_repair -v -L /dev/dm-0,强制xfs_repair将日志归零,解决了无法挂载/sysroot的问题
    2025-11-11
  • Linux驱动之platform总线详解

    Linux驱动之platform总线详解

    大家好,本篇文章主要讲的是Linux驱动之platform总线详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 如何使用Linux的rsync

    如何使用Linux的rsync

    rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步
    2021-06-06
  • Linux系统下为Nginx安装多版本PHP

    Linux系统下为Nginx安装多版本PHP

    本文为大家讲解了如何在Linux,Nginx环境下安装多版本PHP,并支持每个站点不同PHP版本的安装配置方法
    2018-10-10
  • Linux系统下操作Apache最基本的启动停止和重启命令

    Linux系统下操作Apache最基本的启动停止和重启命令

    这篇文章主要介绍了Linux系统下操作Apache最基本的启动停止和重启命令,是网站搭建入门学习中的基础知识,需要的朋友可以参考下
    2015-07-07
  • linux下mysql数据库的操作的方法

    linux下mysql数据库的操作的方法

    下面小编就为大家带来一篇linux下mysql数据库的操作的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • linux系统定时任务与延迟任务详解

    linux系统定时任务与延迟任务详解

    本文简要介绍了Linux系统中定时任务与延迟任务的设置方法,涵盖at命令(单次任务)、crontab(用户级永久任务)、系统级cron(全局任务)及systemd-tmpfiles(临时文件管理),并涉及权限控制、邮件通知处理和任务执行策略
    2025-08-08
  • 简单谈谈Linux内核定时器

    简单谈谈Linux内核定时器

    内核定时器用于控制某个函数(定时器处理函数)在未来的某个特定时间执行.内核定时器注册的处理函数只执行一次.处理过后即失效.
    2017-10-10
  • linux下如何切割大文件

    linux下如何切割大文件

    这篇文章主要介绍了linux下如何切割大文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论