Solaris 单个进程CPU,内存资源获取方式

Joy_Ming 2014-07-30 01:38:01
Solaris可以通过kstat接口编程获取系统总体CPU,内存使用率,单个进程的CPU,内存使用率我通过/proc文件系统也可以获取,但是以普通用户身份运行程序时,我要是想获取进程号1的/proc下面的文件会显示permission denied。还有以普通用户身份运行prstat命令时是可以得到init进程的CPU占用率的,prstat是怎么做的,哪里可以得到prstat的源代码吗?或者,还有别的方式可以得到单个进程的内存,CPU使用率吗?比如,kstat接口的方式?不过,kstat接口好像只能得到总体信息,不能得到单个进程的信息。
...全文
884 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joy_Ming 2014-12-17
  • 打赏
  • 举报
回复
问题解决了,/proc/1 目录进不去,但是/proc/1/ 下面psinfo这个文件是可读的。
  • 打赏
  • 举报
回复
引用 7 楼 phantom_jm 的回复:
恩 确实是没有s权限的,你知道Solaris 的prstat命令和ps命令的源代码在哪吗?怎么着了好久都找不到啊。我想看看prstat是怎么实现的,据说也是基于/proc/但是他又没有s权限,普通用户却可以和root用户得到相同的运行结果
https://searchcode.com/codesearch/view/32162535/ Let us know if you find any clue in there. Good luck!
  • 打赏
  • 举报
回复
引用 3 楼 erhou134 的回复:
用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
could you please tell me which command's return indicates there is a set uid bit on /usr/bin/ps? I did a ls -l on an old Solaris 5.10: -bash-3.00$ ls -l /usr/bin/ps -r-xr-xr-x 62 root bin 5820 Nov 22 2005 /usr/bin/ps
空的 2014-07-31
  • 打赏
  • 举报
回复
用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
  • 打赏
  • 举报
回复
引用 5 楼 erhou134 的回复:
能不用洋文么。。。 去找了下,是不严谨啊 好吧,至少在这边的redhat上 ps命令式没有 s 的,但是你会发现这种机子上是能直接访问/proc下文件的,不管是 cat /proc/version 还是 cat /proc/pid/stat 都可以的,所以不需要s权限的 但是有的机子是不行的, 在aix 5.3 上,/proc/pid/下大部分文件(包括status), 普通用户是没有r权限的, -r-xr-sr-x /usr/bin/ps 这个就是从这个机子上拉出来的
Happy St.Patrick's Day, huh? :) May 17, 2015
Joy_Ming 2014-07-31
  • 打赏
  • 举报
回复
引用 3 楼 erhou134 的回复:
用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
赋予s权限并把文件拥有者改为root是可以的,但是,这是需要root用户来操作的。或者说,有没有不通过/proc/文件系统的办法呢。
Joy_Ming 2014-07-31
  • 打赏
  • 举报
回复
引用 4 楼 micropentium6 的回复:
[quote=引用 3 楼 erhou134 的回复:] 用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
could you please tell me which command's return indicates there is a set uid bit on /usr/bin/ps? I did a ls -l on an old Solaris 5.10: -bash-3.00$ ls -l /usr/bin/ps -r-xr-xr-x 62 root bin 5820 Nov 22 2005 /usr/bin/ps[/quote] 恩 确实是没有s权限的,你知道Solaris 的prstat命令和ps命令的源代码在哪吗?怎么着了好久都找不到啊。我想看看prstat是怎么实现的,据说也是基于/proc/但是他又没有s权限,普通用户却可以和root用户得到相同的运行结果
Joy_Ming 2014-07-31
  • 打赏
  • 举报
回复
引用 5 楼 erhou134 的回复:
[quote=引用 4 楼 micropentium6 的回复:] [quote=引用 3 楼 erhou134 的回复:] 用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
could you please tell me which command's return indicates there is a set uid bit on /usr/bin/ps? I did a ls -l on an old Solaris 5.10: -bash-3.00$ ls -l /usr/bin/ps -r-xr-xr-x 62 root bin 5820 Nov 22 2005 /usr/bin/ps[/quote] 能不用洋文么。。。 去找了下,是不严谨啊 好吧,至少在这边的redhat上 ps命令式没有 s 的,但是你会发现这种机子上是能直接访问/proc下文件的,不管是 cat /proc/version 还是 cat /proc/pid/stat 都可以的,所以不需要s权限的 但是有的机子是不行的, 在aix 5.3 上,/proc/pid/下大部分文件(包括status), 普通用户是没有r权限的, -r-xr-sr-x /usr/bin/ps 这个就是从这个机子上拉出来的[/quote] Centos 下确实是不需要s权限的,但是Solaris/proc/的目录大部分普通用户都不能进入,比如init进程目录,权限是:dr-x--x--x 5 root root,我用普通用户身份居然不能进入这个目录?!!!这是为什么???明明就有x权限啊?!
空的 2014-07-31
  • 打赏
  • 举报
回复
引用 4 楼 micropentium6 的回复:
[quote=引用 3 楼 erhou134 的回复:] 用root ,chmod +s就行吧 prstat这个命令我这没有 不过像ps 这种 -r-xr-sr-x /usr/bin/ps 都是有s的
could you please tell me which command's return indicates there is a set uid bit on /usr/bin/ps? I did a ls -l on an old Solaris 5.10: -bash-3.00$ ls -l /usr/bin/ps -r-xr-xr-x 62 root bin 5820 Nov 22 2005 /usr/bin/ps[/quote] 能不用洋文么。。。 去找了下,是不严谨啊 好吧,至少在这边的redhat上 ps命令式没有 s 的,但是你会发现这种机子上是能直接访问/proc下文件的,不管是 cat /proc/version 还是 cat /proc/pid/stat 都可以的,所以不需要s权限的 但是有的机子是不行的, 在aix 5.3 上,/proc/pid/下大部分文件(包括status), 普通用户是没有r权限的, -r-xr-sr-x /usr/bin/ps 这个就是从这个机子上拉出来的
Joy_Ming 2014-07-30
  • 打赏
  • 举报
回复
引用 1 楼 erhou134 的回复:
可以看下 prstat 命令权限是不是有个s 很多命令都要读取系统配置信息,但普通用户没有访问这些信息的权限 所以有了个 s 权限,root赋予,普通用户可临时越权访问 kstat 这个没接触过。。 不是直接读文件的话就是像prstat 这种命令了~~
我看了,prstat没有s权限。 我可以设置我的程序的有效用户ID为root(0)吗?我的程序本身就不是特权程序啊。
空的 2014-07-30
  • 打赏
  • 举报
回复
可以看下 prstat 命令权限是不是有个s 很多命令都要读取系统配置信息,但普通用户没有访问这些信息的权限 所以有了个 s 权限,root赋予,普通用户可临时越权访问 kstat 这个没接触过。。 不是直接读文件的话就是像prstat 这种命令了~~

1,543

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 Solaris
社区管理员
  • Solaris
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧