如何使用进程的PID与进程交互



我使用的是Ubuntu 12.04。我想知道如何通过进程的PID对其进行操作。我不知道这是否可能。如果可能的话,请帮我。操作是指进程的状态、属性以及通过PID向进程发送命令和数据。

EDIT:状态是指它的工作统计数据,例如它消耗了多少RAM。属性意味着信息重新分级过程。这里我想知道的主要内容是通过PID发送命令/数据进行处理。

procfs是您应该了解的内容。它提供了许多有关流程的信息。这是proc(5)的手册页。基本上,你cd到/proc/$PID,所有这些伪文件都包含你应该能够查看的信息

否则,一个好的程序是top,甚至更好的是htop。它可以发送各种信号,你可以观察到很多信息(状态、内存使用情况、cpu使用情况等)。这真的很棒。

除此之外,还不清楚你想做什么,所以我还是很普通。如果你想像sarnold所说的那样进行IPC(进程间通信),信号可能是最好的方法,或者mmap。(内存映射文件)

不同的程序将进程id作为参数的方式不同。主页是你在这里帮忙。

现在,例如top将提供大部分基本的系统统计信息。要获得进程的最高结果,例如X,此命令将为您提供所需的结果top -n1 -b -p <pid of X>

此外,/proc/<pid>dir将拥有所有必要的系统统计信息,您只需要知道在哪里以及如何读取这些数据。

ps、kill和top常用于与流程交互,请阅读它们的手册页。

ps提供快照,通常从进程名称中获取pid,不过:

例如ps aux | grep -i sshd

top提供半连续反馈(如可配置的windows任务管理器…sorta)

在我看来,top可以很好地了解mem的用法。不过,您需要使用top的交互式命令来配置最佳输出。按"o"表示排序,按"f"表示字段

kill在默认情况下发送SIGTERM(或者它停止进程的东西),或者使用kill-9。如果proc处理程序忽略SIGTERM,kill-s SIGNAL可以用来发送ANY信号,就像SIGSTOP(停止proc)和SIGCONT(继续proc)一样

最新更新