查看程序所有进程pid及其启动目录pidof [程序名] | xargs pwdx
查看程序所有进程pid及其启动目录:
pidof [程序名] | xargs pwdx
例如:
获取linux服务器所有java进程及名称
pidof java | xargs pwdx
pidof:用于查找指定名称的进程的进程号id号
-s 一次只显示一个进程号
-c 只显示运行在root目录下的进程,这个选项只对root用户有效
-o 忽略指定进程号的进程
-x 同时显示在shell脚本运行中的相同名称
```
[root@iZ8vbf5x2ke0nbfocpm645Z ~]# pidof mysqld
16832
[root@iZ8vbf5x2ke0nbfocpm645Z ~]# pidof mysqld | xargs pwdx
16832: /usr/local/mysql/data
```
xargs:将参数列表转换成小块分段传递给其他命令
可以参考我的另一篇博文:[https://blog.csdn.net/qq_41788609/article/details/107710640](https://blog.csdn.net/qq_41788609/article/details/107710640)
pwdx:通过PID号查找文件对应的启动目录
可以通过xargs传参给他
pwdx pid: 查看当前pid进程启动时的工作目录
```
[root@iZ8vbf5x2ke0nbfocpm645Z ~]# ps -ef | grep mysql
root 18552 1 0 11:05 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysqld.pid
mysql 18716 18552 4 11:05 pts/1 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/mysqld.log --pid-file=/usr/local/mysql/data/mysqld.pid --socket=/usr/local/mysql/data/mysql.sock
root 18778 18435 0 11:06 pts/1 00:00:00 grep --color=auto mysql
[root@iZ8vbf5x2ke0nbfocpm645Z ~]# pwdx 18552
18552: /usr/local/mysql
[root@iZ8vbf5x2ke0nbfocpm645Z ~]# pwdx 18716
18716: /usr/local/mysql/data
```