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