[ "$cur_ns" ] || return 1
local pid ns pids=""
+ # add pids if it matches current pid namespace
+ # we should add pids what do not exist (dead processes),
+ # but not add pids whose namespace does not match
+ # (processes belonging to different NS do exist in /proc)
for pid in "$@"; do
+ if [ ! -d /proc/$pid ]; then
+ pids="$pids $pid"
+ continue
+ fi
ns=$(resolvesymlink /proc/$pid/ns/pid)
- # add if matches current pid namespace
- # also add if empty ns found (for dead pids?) FIXME
- if [ -z "$ns" -o "$ns" = "$cur_ns" ]; then
+ if [ "$ns" = "$cur_ns" ]; then
pids="$pids $pid"
fi
done