我正在使用 Ubuntu 12.04 。我想知道如何通过 PID 对进程进行操作。我不知道这是否可能。如果可能的话,请帮助我。操作意味着状态,进程的属性以及通过它发送命令和数据到进程 PID 。
编辑:状态是指它的工作统计数据,例如它消耗了多少内存。属性意味着重新分级该过程的信息。我想在这里了解的主要内容是通过其 PID 发送命令/数据以进行处理。
procfs是你应该看看的东西。它提供了有关该过程的大量信息。这是proc(5) 的手册页。基本上,您 cd 到/proc/$PID
所有这些伪文件都包含您应该能够查看的信息。
否则,一个可以玩的好程序是top
,甚至更好htop
。它可以发送各种信号,并且可以观察到很多信息(状态、mem 使用情况、cpu 使用情况……)真的很棒。
除此之外,尚不清楚您要做什么,因此我保持通用。如果你想像 sarnold 所说的那样做 IPC(进程间通信),信号可能是要走的路,或者 mmap。(内存映射文件)
ps、kill 和 top 常用于与进程交互,请阅读它们的手册页。
ps 提供快照,通常是从 proc 名称中获取 pid:
例如ps aux | grep -i sshd
top 提供半连续的反馈(如可配置的 Windows 任务管理器......排序)
在我看来,top 会很好地了解 mem 的使用情况。不过,您需要使用 top 的交互式命令来配置以获得最佳输出。按“o”进行排序,按“f”进行我认为的字段,请阅读该人。
kill 默认情况下发送 SIGTERM (或停止进程的东西)或使用 kill -9 如果 proc 处理程序忽略 SIGTERM,kill -s SIGNAL 可用于发送任何信号,尽管如 SIGSTOP(停止 proc)和 SIGCONT(继续过程)
不同的程序有不同的方式将进程ID作为参数。手册页是你在这里的帮助。
例如,现在top
将给出大部分基本系统统计信息。要获得进程的最佳结果,例如X
,此命令将为您提供所需的结果top -n1 -b -p <pid of X>
dir/proc/<pid>
还将拥有所有必要的系统统计信息,您所需要的只是知道在哪里以及如何读取这些数据。