首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在illumos/solaris上检测chroot?

如何在illumos/solaris上检测chroot?
EN

Stack Overflow用户
提问于 2012-07-10 21:45:45
回答 2查看 240关注 0票数 1

如何检测正在运行的C程序是否在illumos/solaris上的"chroot“中运行?

有一个Debian实用程序1,它在linux,freebsd,hurd上使用了一些技巧。

如何在illumos/solaris上做到这一点?

1

EN

回答 2

Stack Overflow用户

发布于 2012-07-13 17:11:47

有一个this thread on ,它详细介绍了不同的方法来确定Solaris是在一个区域(容器/chroot-on-on-of-steroid)还是VM中运行。特别广泛的是the list in this posting (似乎来自this blog post。我将在这里重新创建一些与区域相关的项-那些可供非root用户使用的项。

  • /usr/bin/zonename命令告诉您一些与“全局”进程不同的信息。在非分区(或“全局”/管理区域内)环境中,
  • Solaris内核“进程”称为sched,但在区域内称为zsched
  • Solaris prstat命令(类似于其他UN*‘t上的top )具有-z / -Z命令行选项,可将报告限制为特定区域(-z)或提供所有区域的统计信息(-Z);在区域内,这些选项不起作用/仅显示您正在运行的区域。

希望这能帮上点忙。

票数 2
EN

Stack Overflow用户

发布于 2014-07-27 04:56:50

我是这样使用的:

代码语言:javascript
复制
#elif defined (__sun__)

/* Similar to Linux
 * XXX: check zone?
 * XXX: illumos kernel automatically mounts /proc on boot
 */

static int ischroot()
{
  struct stat st1, st2;

  if (stat("/", &st1))
    return 2;
  if (stat("/proc/1/root", &st2))
    return 2;
  if ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino))
    return 1;
  return 0;
}

#else
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11414705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档