如何在unix中查看进程表?

时间:2015-09-05 23:50:47

标签: unix process

要查看进程表的UNIX命令是什么,请记住该表包含:

  • 流程状态
  • 指针
  • 流程大小
  • 用户ID
  • 流程ID
  • 事件描述符
  • 优先

2 个答案:

答案 0 :(得分:3)

这样的“进程表”存在于内核的内存中。某些系统(例如AIX,Solaris和Linux - 不是“unix”)具有/proc文件系统,这使得这些表对普通程序可见。如果不这样,诸如ps之类的程序(在非常旧的系统上,例如SunOS 4)需要提升权限来读取/dev/kmem(内核内存)特殊设备,以及详细了解内核内存布局

答案 1 :(得分:-1)

你的问题是开放式的,你可能有的具体问题的答案可以在@Alfasin在答案中建议的任何手册页中查找。很大程度上取决于你想要做什么。

正如@ThomasDickey在他的回复中指出的那样,在UNIX及其大部分内容中都是如此。衍生物,用于查看在后台或前台运行的进程的命令实际上是ps命令。

ps代表'流程状态',回答您的第一个项目符号。但该命令使用了30多个选项,并且根据您寻求的信息以及系统管理员授予您的权限,您可以从命令中获取各种类型的信息。

例如,对于上面列表中的第二个项目符号,根据您要查找的内容,您可以获得有关3种不同类型指针的信息 - 会话指针(带选项' sess') ,终端会话指针(tsess)和进程指针(uprocp)。

您列出的其他项目大多数可用作命令的标准输出。

某些UNIX变体实现了文件系统内部系统进程表的视图,以支持ps等程序的运行。这通常安装在/ proc上(参见上面的@ThomasDickey响应)

理解命令工作的典型原因包括系统管理职责,例如跟踪已启动进程的来源,杀死失控或孤立进程,检查进程的文件大小以及在必要时设置限制等.UNIX开发人员也可以将它与ipc功能等结合使用。了解进程表和状态将有助于相关的UNIX功能(如kvm接口)检查故障转储等,或者获取或设置内核状态。

希望这有帮助