[Devel] [PATCH] vzpid: option "-p" added to show internal PID(s)

Igor Podlesny openvz at poige.ru
Mon Oct 28 10:24:35 PDT 2013


New command line option '-p' means show corresponding internal PID(s) as well:

	# vzpid -p 2129
	Pid     CT/Pid  CTID    Name
	2129    333     1020    mysqld
---
 bin/vzpid.in   | 33 +++++++++++++++++++++++++++------
 man/vzpid.8.in |  6 +++++-
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/bin/vzpid.in b/bin/vzpid.in
index 36e672b..8a65f2a 100755
--- a/bin/vzpid.in
+++ b/bin/vzpid.in
@@ -17,31 +17,52 @@
 #
 veidmark='envID:'
 namemark='Name:'
+vpidmark='VPid:'
+showCTPID=0
+opShowCTPID='END {printf("%d\t%d\t%s\t%s\n", pid, vpid, veid, name)}'
+opShowDef='END {printf("%d\t%s\t%s\n", pid, veid, name)}'
 
 usage()
 {
-	echo 'Usage: vzpid <pid> ...'
-	echo '       vzpid -'
+	echo 'Usage: vzpid [-p] <pid> ...'
+	echo '       vzpid [-p] -'
 }
 
 header()
 {
-	printf '%s\t%s\t%s\n' 'Pid' 'CTID' 'Name'
+	if [ "$showCTPID" -ne 0 ]; then
+		printf '%s\t%s\t%s\t%s\n' 'Pid' 'CT/Pid' 'CTID' 'Name'
+	else
+		printf '%s\t%s\t%s\n' 'Pid' 'CTID' 'Name'
+	fi
 }
 
 getveid()
 {
+	local opShow
 	local pid="$1"
 
 	[ -f "/proc/$pid/status" ] || return
+
+	if [ "$showCTPID" -ne 0 ]; then
+		opShow="$opShowCTPID"
+	else
+		opShow="$opShowDef"
+	fi
+
 	awk -v "pid=$pid" '
-BEGIN {veid=0; name=""}
+BEGIN {veid=0; name=""; vpid=0}
 ($1 == "'"$namemark"'") {name = $2}
 ($1 == "'"$veidmark"'") {veid = $2}
-END {printf("%d\t%s\t%s\n", pid, veid, name)}
-	' <"/proc/$pid/status"
+($1 == "'"$vpidmark"'") {vpid = $2}
+'"$opShow" < "/proc/$pid/status"
 }
 
+if [ "$1" = '-p' ]; then
+	showCTPID=1
+	shift
+fi
+
 if [ $# -eq 0 ]; then
 	usage >&2
 	exit 1
diff --git a/man/vzpid.8.in b/man/vzpid.8.in
index 18018ca..35ab71d 100644
--- a/man/vzpid.8.in
+++ b/man/vzpid.8.in
@@ -3,8 +3,9 @@
 vzpid \- display the CT ID given the process ID
 .SH SYNOPSIS
 .SY vzpid
-\fIpid\fR [...]
+[-p] \fIpid\fR [...]
 .SY vzpid
+[-p]
 .B -
 .YS
 .SH DESCRIPTION
@@ -15,6 +16,9 @@ This script displays the CT ID the process with the given \fIpid\fR belongs to.
 The \fIpid\fR of the process to display the CT ID of. Can be specified
 multiple times.
 .TP
+.B -p
+Show corresponding internal PID(s).
+.TP
 .B -
 Read PID(s) from the standard input.
 .SH EXIT STATUS
-- 
1.8.1.2




More information about the Devel mailing list