This [[:Category:HOWTO|HOWTO] shows how OpenVZ hardware node administrator can see a processes belonging to the host system only, or to a particular VE.
Contents
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, modified by kir.
First argument is VE ID (0 for the host system), all the remaining arguments are passed to ps(1)
utility.
#!/bin/bash # Usage: ./ovzps VEID [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 [ "${VEPIDS}" ]; then ps $* -p "$VEPIDS" else exit 0 fi
Use vzprocps tools
Take vzprocps tools from download.openvz.org/contrib/ It is usual ps/top with -E option allowing to filter output. If given w/o VE number, then it simply adds VEID column to its output.