1

我正在使用 Ubuntu 12.04 。我想知道如何通过 PID 对进程进行操作。我不知道这是否可能。如果可能的话,请帮助我。操作意味着状态,进程的属性以及通过它发送命令和数据到进程 PID 。

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

4

3 回答 3

2

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

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

除此之外,尚不清楚您要做什么,因此我保持通用。如果你想像 sarnold 所说的那样做 IPC(进程间通信),信号可能是要走的路,或者 mmap。(内存映射文件)

于 2012-07-24T03:20:47.893 回答
1

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(继续过程)

于 2012-07-24T05:37:20.303 回答
1

不同的程序有不同的方式将进程ID作为参数。手册页是你在这里的帮助。

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

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

于 2012-07-24T05:54:48.170 回答