当前位置: 代码网 > 服务器>服务器>Linux > 一文详解Linux如何查询服务和定位可执行文件

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

2025年11月18日 Linux 我要评论
1 查看所有运行服务1.1 使用systemd系统# 查看所有正在运行的服务systemctl list-units --type=service --state=running# 查看所有服务(包括

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查询服务和定位可执行文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com