linux 下查看进程的完整路径
当我们查看系统正在运行的进程时,有时候我们想查看以下进程的详细信息,包括绝对路径,这个时候ps的不足指出就显露出来了,而强大的top也只能查看到进程名而已。
这个时候怎么办呢?个人理解,在linux启动一个进程时,会给进程分配一个ID,就是我们的PID,而与此同时了,系统会在/proc下创建一个文件夹,以PID命名,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件,这就我们想要的,就像win下的exe文件,它是原始程序的一个链接,所以当我们用ls -l的时候就能够得到我们的完整路径!
$ top
top - 11:37:41 up 51 min, 4 users, load average: 0.62, 0.80, 0.77
Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.6%us, 2.3%sy, 0.0%ni, 87.0%id, 2.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2026800k total, 1948128k used, 78672k free, 565720k buffers
Swap: 261112k total, 0k used, 261112k free, 922732k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1709 ubuntu 20 0 408m 145m 32m S 10 7.4 5:43.69 firefox-bin
1049 root 20 0 94368 34m 13m S 5 1.7 2:04.41 Xorg
1747 ubuntu 20 0 228m 68m 19m S 5 3.5 2:35.79 plugin-containe
1536 ubuntu 20 0 85264 28m 9184 S 2 1.4 0:21.85 compiz
1640 ubuntu 20 0 59260 18m 13m S 1 1.0 0:09.05 gnome-terminal
9 root 20 0 0 0 0 S 0 0.0 0:00.03 events/0
1051 mysql 20 0 142m 18m 5856 S 0 0.9 0:00.90 mysqld
3101 ubuntu 20 0 2548 1224 924 R 0 0.1 0:00.03 top
1 root 20 0 2780 1704 1228 S 0 0.1 0:00.37 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
$ cd /proc/1709/
/proc/1709$ ls
attr cpuset io mountinfo pagemap smaps task
auxv cwd latency mounts personality stack wchan
cgroup environ limits mountstats root stat
clear_refs exe loginuid net sched statm
cmdline fd maps oom_adj schedstat status
coredump_filter fdinfo mem oom_score sessionid syscall
/proc/1709$ ls -l exe
lrwxrwxrwx 1 ubuntu ubuntu 0 2011-08-13 11:13 exe -> /usr/lib/firefox-3.6.18/firefox-bin
-----------------------------------------------------
cwd符号链接的就是进程22401的运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;本例为:。/cbs
cpu记录了进程可能运行在其上的cpu;显示虚拟的cpu信息
environ记录了进程运行时的环境变量
fd目录下是进程打开或使用的文件的符号连接
。。.
通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及定位是那个应用才使用此服务程序。这样就获得了Linux进程文件路径了。
相关推荐
因此,能够正确地获取这两种模式下的进程路径是至关重要的。 为了实现这个功能,我们可以利用Windows API提供的函数。例如,`OpenProcess`函数可以获取指定PID的进程句柄,然后使用`QueryFullProcessImageName`或`...
标题:Linux下init进程源码分析 描述:深入解析Linux init进程的核心机制及其实现细节。 **重要知识点解析:** 1. **init进程的角色与重要性:** - 在Linux系统中,`init`进程(PID=1)是所有其他进程的父进程,...
### LINUX下多路径(multi-path)介绍及使用 #### 一、什么是多路径? 传统的计算机系统通常采用一对一的硬盘连接方式,即一个硬盘通过单一的总线与主机相连。但在现代数据中心环境中,如通过光纤组成的存储区域网络...
Linux进程是操作系统的核心概念,理解和掌握其工作原理对于深入学习Linux系统至关重要。本资料集合将探讨Linux进程的生成、使用和创建过程,以及相关的源码分析。 首先,我们来了解一下进程的生成。在Linux中,新...
总结来说,通过`netstat`、`ps`和`/proc`目录,我们可以有效地定位并分析Linux系统中的异常进程,找出它们的完整启动路径。这对于故障排查、系统优化以及安全维护至关重要。在实际工作中,了解这些基础操作将极大地...
3. **错误处理**:如果`execl()`调用失败,`login`将输出错误信息,通常是因为无法执行`_PATH_LOGIN`(即`/bin/login`)路径下的程序。 #### 环境与联系 `login`程序紧密地与系统其他组件互动,如`mingetty`。`...
在Linux中,可以通过`ps`命令查看当前系统中的进程状态,`kill`或`pkill`命令用于结束特定的进程,`top`或`htop`提供实时的进程监控。了解如何管理和控制进程对于系统性能优化和问题排查至关重要。 通过这个实验,...
在“ka.rar”这个压缩包中,包含了关于Linux进程调度、进程管理以及进程同步的相关实验和资料,这些都是理解和操作Linux系统至关重要的知识点。 首先,我们来看“进程调度”。在Linux中,进程调度器负责决定哪个...
1,应用范围:在linux系统下的监控程序,根据进程名称监控一些进程或程序,如果某个程序停止运行,则发送一个提醒邮件或者飞信通知。 通过crontab机制,在设定的时间间隔内反复执行监控程序,达到每隔一个时间间隔...
综上所述,Linux进程监控和进程守护程序是系统运维中不可或缺的一部分,对于保证系统稳定运行和关键业务连续性具有重要的作用。通过合理设计和运用监控与守护机制,不仅可以提高运维效率,还能够最大限度地减少因...
本课程设计主要聚焦于Linux下的基本命令操作和进程调度,这两个主题对于理解Linux系统管理和优化至关重要。 首先,我们来深入探讨Linux的基本命令。这些命令是与Linux交互的基础工具,通过它们,用户可以执行各种...
本文将详细介绍如何在Linux环境下通过几个命令行工具来查看进程的堆栈信息,以帮助开发者了解程序运行时的线程状态和调用路径。 首先,我们要知道进程和线程的概念。进程是程序的一次执行实例,而线程是进程中执行...
构建完整的程序路径(这里假定所有程序都位于 `/home/nicholas/` 目录下)。 2. 调用 `gettimeofday()` 获取当前时间作为子进程的开始时间。 3. 使用 `fork()` 创建一个子进程。 4. 在子进程中调用 `execv()` 来...
### Linux虚拟文件系统(路径搜索) #### 概述 Linux虚拟文件系统(VFS,Virtual File System)是一种抽象层,用于处理不同的文件系统接口。它提供了统一的接口来访问各种类型的文件系统,使得用户可以使用相同的...
在Windows系统中,可以使用任务管理器查看进程信息,但仅显示进程名称,不包括完整路径。对于开发者和管理员来说,可能需要更详细的信息,如进程的可执行文件的完整路径,以便了解进程的来源和行为。 在编程层面,...
在Linux环境中,为了确保应用程序如Tomcat能够随系统自动启动并作为守护进程运行,需要进行一系列的配置步骤。本文将详细介绍如何将Tomcat添加到Linux的守护进程,并处理"Invalid user name 'tomcat' specified"的...
Linux 进程并发程序设计是指在 Linux 环境下编写并发程序的设计和实现,涵盖进程创建、进程通信、管道应用等方面。同时,掌握 Linux 环境下的进程并发程序设计也能够帮助开发者更好地理解 Linux 操作系统的工作机制...