Difference between revisions of "Processes scope and visibility"
Botinki Kira (talk | contribs) m (Robot: Automated text replacement (-VE ID +CT ID)) |
Botinki Kira (talk | contribs) m (Robot: Automated text replacement (-VEID +CTID)) |
||
Line 15: | Line 15: | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
− | # Usage: ./ovzps | + | # Usage: ./ovzps CTID [ps flags ...] |
function find_ve_pids(){ | function find_ve_pids(){ | ||
Line 45: | Line 45: | ||
=== Use vzprocps tools === | === Use vzprocps tools === | ||
Take <code>vzprocps</code> tools from http://download.openvz.org/contrib/utils/. | Take <code>vzprocps</code> tools from http://download.openvz.org/contrib/utils/. | ||
− | These are usual <code>ps</code> and <code>top</code> utilities (named <code>vztop</code> and <code>vzps</code> to not conflict with the standard ones) with an <code>-E</code> option added. You can use <code>-E <i> | + | These are usual <code>ps</code> and <code>top</code> utilities (named <code>vztop</code> and <code>vzps</code> to not conflict with the standard ones) with an <code>-E</code> option added. You can use <code>-E <i>CTID</i></code> option to limit the output to the selected CTID (use 0 for the host system), or just <code>-E</code> without an argument to just add CTID column to output. |
== See also == | == See also == |
Revision as of 09:43, 11 March 2008
This HOWTO shows how OpenVZ hardware node administrator can see a processes belonging to the host system only, or to a particular VE.
Problem
From VE0 one can see all the processes running on the system; that includes all the processes of all VEs and the processes of the host system itself. Sometimes you just want to see the processes from the host system only. Sometimes you just want to see the processes from a particular VE.
There are many ways to achieve it.
Solutions
"Poor man's vzps in bash"
Use the following script by aistis, broken by Kir, fixed by Hvdkamer.
First argument is CT ID (0 for the host system), all the remaining arguments are passed to ps(1)
utility.
#!/bin/bash # Usage: ./ovzps CTID [ps flags ...] function find_ve_pids(){ local pid local myveid=$1 local vepids= for pid in $ALLPIDS; do [ -f /proc/$pid/status ] || continue veid=`grep envID /proc/$pid/status | awk -F: '{print $2}'` if [ ${veid} = ${myveid} ]; then vepids="$vepids $pid" fi done echo "$vepids" } ALLPIDS=`ps -A -o pid --no-headers` VEPIDS=`find_ve_pids $1` shift if [ -n "${VEPIDS}" ]; then ps $* -p $VEPIDS else exit 0 fi
Use vzprocps tools
Take vzprocps
tools from http://download.openvz.org/contrib/utils/.
These are usual ps
and top
utilities (named vztop
and vzps
to not conflict with the standard ones) with an -E
option added. You can use -E CTID
option to limit the output to the selected CTID (use 0 for the host system), or just -E
without an argument to just add CTID column to output.