如果我有一个进程的 PID 号(在 UNIX 机器上),我怎样才能找到其关联进程的名称?
我需要做什么?
解决之前问: cat /proc/1111/status | grep PPid
我试图在我的计算机上安装 Zend Server CE,但是当我需要为我的 Web 服务器选择端口时,它显示:“Web 服务器端口:80 占用”。所以我决定通过键入:“netstat -o -n -a | findstr 0.0:80”来检查使用端口 80 和 CMD 的内容:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
Run Code Online (Sandbox Code Playgroud)
我在任务管理器的进程和服务中检查 PID:4。似乎PID 4是“系统”。
那么,我想知道的是如何阻止“系统”(PID:4)使用端口 80?
信息: 我正在使用:Windows 7 64 位;Zend 服务器 CE 5.5.0
我拼凑了一个命令来返回正在运行的守护进程的进程 ID:
ps aux | grep daemon_name | awk "{ print \$2 }"
Run Code Online (Sandbox Code Playgroud)
它完美地工作并返回PID,但它也返回第二个PID,这可能是我现在正在运行的进程。有没有办法从返回的 PID 列表中排除我的命令?
我已经对其进行了几次测试,看起来我的命令始终是列表中的第二个 PID,但我不想只获取第一个 PID,以防它不准确。
你能帮我找到 PID 的用户名吗?有时我的服务器负载很高。当我 top -c 时,我什至找不到导致服务器负载的 PID 用户名。
正如标题所写,我应该在哪里让init脚本编写pid文件?我应该选择任何标准路径而不是 /var/run 吗?
/tmp 是否是一个存储它的好地方,或者它有什么缺点?
我尝试运行netstat -o以检查建立的连接是什么。我看到了两个,它们有 PID 号。当我在我的任务管理器中检查它时,我找不到那些 PID 号。有什么办法可以找到它们吗?
我正在寻找一行返回正在运行的进程的 pid 的行。
目前我有:
ps -A -o pid,cmd|grep xxx|head -n 1
这将返回拳头pid, command。我只需要输出中的第一个数字,而忽略其余部分。我想sed或awk会在这里提供帮助,但我对他们的经验有限。
另外,这还有一个问题,如果 xxx 没有运行,它会返回 grep 的 pid。
有一行真的很重要,因为我想重用输出来做其他事情,比如杀死那个进程。
只是出于好奇,0 到 4 之间以及 4 到 200 之间的过程是什么。

Windows 7 是否重用进程 ID?
我问这个问题的原因是由于我的经验,Windows XP 和 Linux 似乎从未生成高于 20-30k 的进程 ID。但是,我的 Windows 7 机器在重新启动后的几个小时内会达到高达 5-10k 左右的 ID,这是我过去的正常体验。第二天早上我检查,有些进程是 250k 或更高,这不是。
我激活了安全审计功能来记录进程的创建和终止。没有任何东西会产生成百上千或过程。这些事件中只有 513 个在 24 小时内注册,但似乎已经使用了数十万个进程 ID。
我尝试搜索我的问题,之前提出的建议问题之一指向Mark Russinovich 的精彩博客。但是这篇文章虽然读起来很有趣,但让我感到困惑。