运行pidof lh返回两个数值,分别是什么?哪一个是进程PID?
pidof返回两个值的原因及排查方法
pidof 命令的默认逻辑是输出当前系统中所有进程名与指定程序名匹配的进程PID,你拿到的37354和7968都是独立的lh进程PID,不存在非PID类的其他返回值。
为什么会返回多个PID
出现多个返回值通常对应以下几种常见场景:
- 你手动启动了多次lh程序,系统中同时存在多个正常运行的lh进程
- lh程序自身为多进程架构,启动后会自动fork出子进程,子进程会继承父进程的名称,也会被pidof匹配到
- 存在其他名称完全为lh的无关程序也在运行,和你要操作的lh不是同一个程序
筛选目标PID的方法
执行以下命令查看两个PID的详细信息,即可快速区分:
ps -p 37354,7968 -o pid,ppid,user,etime,cmd
输出会展示两个进程的PID、父进程ID、启动用户、运行时长、完整启动命令,你可以根据实际运行参数、启动时间等信息判断哪个是你需要修改最大打开文件数限制的目标进程。
如果需要进一步确认进程对应的可执行文件路径,可以执行:
ls -l /proc/37354/exe ls -l /proc/7968/exe
对比输出的路径和你部署的lh程序路径是否一致即可。
内容的提问来源于stack exchange,提问作者user786
相关产品推荐
相关产品推荐

