如何获取linux进程的执行文件路径

如何获取linux进程的执行文件路径,第1张

ps查看所有符合/cmd的进程,找出其对应的进程号 用ll命令: ll 进程号 如下显示一个示例: [root@Cluster1 proc]# ll 22401 total 0 -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cmdline -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cpu lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 cwd -> /home/zhouys/sbs/bin -r-------- 1 zhouys zhouys 0 Dec 11 11:10 environ lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 exe -> /home/zhouys/sbs/bin/cbs (deleted) dr-x------ 2 zhouys zhouys 0 Dec 11 11:10 fd -r-------- 1 zhouys zhouys 0 Dec 11 11:10 maps -rw------- 1 zhouys zhouys 0 Dec 11 11:10 mem -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 mounts lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 root -> / -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 stat -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 statm -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 status /proc文件系统下的 进程号目录 下面的文件镜像了进程的当前运行信息, 从中可以看到: cwd符号链接的就是进程22401的运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令;本例为:/cbs cpu记录了进程可能运行在其上的cpu;显示虚拟的cpu信息 environ记录了进程运行时的环境变量 fd目录下是进程打开或使用的文件的符号连接 通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及 定位是那个应用才使用此服务程序。

你打开终端》输入命令 ps -aux | grep test

test是你要找的进程的关键字。

然后在最末尾就是你要找的进程名,如果这个名字是带有斜杠的,那么就是绝对路径,你可以直接去找到这个程序。

如果是没有斜杠的,那么一般在/usr/bin/目录下会有叫这个名字的程序。

版本 2支持库 eAPI子程序 _按钮1_被单击局部变量 进程, 进程信息, , "0"局部变量 计次, 整数型进程 = 取系统进程列表 ()计次循环首 (取数组成员数 (进程), 计次) 如果 (进程 [计次]进程名称 = “要结束的进程exe”) 终止进程 (进程 [计次]进程标识符) 否则 如果结束计次循环尾 ()

string str =Process GetCurrentProcess() MainModule FileName;//可获得当前执行的exe的文件名

string str =Environment CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径

//备注 按照定义 如果该进程在本地或网络驱动器的根目录中启动 则此属性的值为驱动器名称后跟一个尾部反斜杠(如 C:\ ) 如果该进程在子目录中启动 则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如 C:\mySubDirectory )

string str =Directory GetCurrentDirectory();//获取应用程序的当前工作目录

string str =AppDomain CurrentDomain BaseDirectory;//获取基目录 它由程序集冲突解决程序用来探测程序集

string str =Application StartupPath;//获取启动了应用程序的可执行文件的路径 不包括可执行文件的名称

string str =Application ExecutablePath;//获取启动了应用程序的可执行文件的路径 包括可执行文件的名称

string str =AppDomain CurrentDomain SetupInformation ApplicationBase;//获取或设置包含该应用程序的目录的名称

   System Diagnostics Process GetCurrentProcess() MainModule FileName获取模块的完整路径

   System Environment CurrentDirectory获取和设置当前目录(该进程从中启动的目录)的完全限定目录

   System IO Directory GetCurrentDirectory()获取应用程序的当前工作目录 这个不一定是程序从中启动的目录啊 有可能程序放在C:\里 这个函数有可能返回C:\Documents and Settings\ZYB\ 或者C:\Program Files\Adobe\ 有时不一定返回什么东东 我也搞不懂了

  System AppDomain CurrentDomain BaseDirectory获取程序的基目录

  System AppDomain CurrentDomain SetupInformation ApplicationBase获取和设置包括该应用程序的目录的名称

lishixinzhi/Article/program/net/201311/12285

启动项中有有关的内容,你可以去查一下 开始-运行-msconfig 另外,推荐一个网址 >

XP默认下是没有这个功能的,可以下载其他的进程管理软件,此类软件有很多

如果你非要使用windows 自带的,也可以,但要下载补丁

<Longhorn 任务管理器补丁 >

Longhorn 所带的任务管理器比 xp/2003 中的版本多了“打开所在目录”、“映像路径”、“命令行”等实用功能,如右图。

在 xp/2003 下使用的办法:

1、用附件中的三个文件覆盖 Windows\system32\dllcache 下的同名文件。(一般找不到"DLLcache"目录的,必须打开“运行”,输入"c:\Windows\system32\dllcache"回车才能打开。)

2、再用这三个文件覆盖 Windows\system32 目录下的同名文件,此时会d出“Windows 文件保护”对话框,选择“取消”,然后选择“是”。

现在你就可以按“Ctrl+Shift+Esc”或“Ctrl+Alt+Del”来使用新的任务管理器了。

点击“进程”标签,然后在查看菜单下的“选择列”中可以设置显示“命令行”和“映象路径”。

原型:

int WINAPI icePub_getProcessPathByPid(int pid,char strPath)

输入:pid 进程PID

输出:strPath 进程带路径文件名

Private Declare Function icePub_getProcessPathByPid Lib "icePubDlldll" (ByVal pid As Integer,ByVal strPath As String) As Integer

Dim a2 As Integer

Dim buff As String

buff=space(1024)

a2=icePub_getProcessPathByPid (2484,buff)

MsgBox buff

原型:

int WINAPI icePub_getProcessInfo(char strInfoList ,int maxLen)

输入:maxLen strInfoList最大长度

输出:strInfoList 进程基本信息,name|pid|path,一行一条信息

Private Declare Function icePub_getProcessInfo Lib "icePubDlldll" (ByVal strInfoList As String, ByVal maxLen As Integer) As Integer

Dim a2 As Integer

DIm buff As String

buff=space(102430+1)

a2=icePub_getProcessInfo(buff,102430)

MsgBox buff

以上就是关于如何获取linux进程的执行文件路径全部的内容,包括:如何获取linux进程的执行文件路径、Linux查看已知的进程对应目录、易语言怎么进程取目录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9314328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存