Print this page
OS-4408 /native/usr/bin/ps should work in a lx branded zone
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
*** 25,35 ****
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
! * Copyright (c) 2012, Joyent, Inc. All rights reserved.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
--- 25,35 ----
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
! * Copyright 2015 Joyent, Inc.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
*** 284,294 ****
static int nzoneid = 0;
static int kbytes_per_page;
static int pidwidth;
! static char *procdir = "/proc"; /* standard /proc directory */
static struct ughead euid_tbl; /* table to store selected euid's */
static struct ughead ruid_tbl; /* table to store selected real uid's */
static struct ughead egid_tbl; /* table to store selected egid's */
static struct ughead rgid_tbl; /* table to store selected real gid's */
--- 284,294 ----
static int nzoneid = 0;
static int kbytes_per_page;
static int pidwidth;
! static char procdir[MAXPATHLEN]; /* standard /proc directory */
static struct ughead euid_tbl; /* table to store selected euid's */
static struct ughead ruid_tbl; /* table to store selected real uid's */
static struct ughead egid_tbl; /* table to store selected egid's */
static struct ughead rgid_tbl; /* table to store selected real gid's */
*** 337,348 ****
--- 337,356 ----
int
main(int argc, char **argv)
{
const char *me;
+ const char *zroot = zone_get_nroot();
/*
+ * If this is a branded zone, the native procfs may mounted in a
+ * non-standard location. Apply such a path prefix if it exists.
+ */
+ (void) snprintf(procdir, sizeof (procdir), "%s/proc", zroot != NULL ?
+ zroot : "");
+
+ /*
* The original two ps'es are linked in a single binary;
* their main()s are renamed to stdmain for /usr/bin/ps and
* ucbmain for /usr/ucb/ps.
* We try to figure out which instance of ps the user wants to run.
* Traditionally, the UCB variant doesn't require the flag argument