[Devel] [PATCH] vzpid: new option "-p" to show in-container PID(s)
Kir Kolyshkin
kir at openvz.org
Mon Oct 28 21:40:01 PDT 2013
On 10/28/2013 09:29 PM, Igor Podlesny wrote:
> New command line option "-p" means show additionaly the corresponding
> in-container PID(s), note CT/Pid column in the following example:
>
> # vzpid -p 2129
> Pid CT/Pid CTID Name
> 2129 333 1020 mysqld
> ---
> bin/vzpid.in | 33 +++++++++++++++++++++++++++------
> man/vzpid.8.in | 5 +++++
> 2 files changed, 32 insertions(+), 6 deletions(-)
>
> diff --git a/bin/vzpid.in b/bin/vzpid.in
> index 36e672b..e148236 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 == "'"$vpidmark"'") {vpid = $2}
> ($1 == "'"$veidmark"'") {veid = $2}
> -END {printf("%d\t%s\t%s\n", pid, veid, name)}
> - ' <"/proc/$pid/status"
> +'"$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..99bd979 100644
> --- a/man/vzpid.8.in
> +++ b/man/vzpid.8.in
> @@ -3,8 +3,10 @@
> vzpid \- display the CT ID given the process ID
> .SH SYNOPSIS
> .SY vzpid
> +.OP -p
> \fIpid\fR [...]
> .SY vzpid
> +.OP -p
> .B -
> .YS
> .SH DESCRIPTION
> @@ -15,6 +17,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
> +.OP -p
> +Show the corresponding in-container PID(s).
Have you seen the result of this? We do not need square brackets around
-p here.
Also, please reply in that thread, don't create a new one (hint: git
send-email --in-reply-to
And add v2 (or v3) to the subject, and a short one-liner in the
description body telling why it is v2
> +.TP
> .B -
> Read PID(s) from the standard input.
> .SH EXIT STATUS
More information about the Devel
mailing list