LINUX.ORG.RU
решено ФорумAdmin

Как убрать процессы OpenVZ из вывода ps или другой аналогичной утилиты?


0

3

Имеется машина с кучей контейнеров OpenVZ, а так же «родными» процессами. Как можно посмотреть только те процессы, которые являются «родными», т.е. не входят ни в один контейнер? Не обязаельно ps, сойдёт любая аналогичная утилита.

Deleted

Есть такой скрипт - vzpid. Позволяет по пиду выяснить, к какому cpt (vps,vds) контейнеру принаджелит процесс. Это простой башевский скрипт, который ориентируется на envID
# grep envID /proc/$$/status
envID:   0

Можно набросать простой скрипт, который, который будет добывать нужную инфу или фильтровать вывод ps aux.


А еще раньше был патч к ядру, по которому были видны только свои процессы:
http://download.openvz.org/contrib/kernel-patches/diff-ve0-proc-own-processes...

Я даже когда-то сделал на его основе патч для переключения через sysctl видимости процессов
http://download.openvz.org/contrib/kernel-patches/ve0_proc_all_tasks.patch
Эх, было время :-)



Valmont ★★★
()
Ответ на: комментарий от Valmont

# grep envID /proc/$$/status

envID: 0

...

Можно набросать простой скрипт, который, который будет добывать нужную инфу или фильтровать вывод ps aux.

Спасибо, получился такой скриптик:

#!/bin/sh

ps -eFww | tail -n +2 | while read l; do
        pid=$(( $( echo "${l}" | sed "s,^ *[^ ]* * \([^ ]*\) *.*$,\1," ) ))
        envid=$(( $( sed -n "s,^envID: *\([^ ]*\) *$,\1,p" <"/proc/${pid}/status" ) ))
        [ $envid -eq 0 ] && echo "${l}"
done

Deleted
()
Ответ на: комментарий от anonymous

vzctl exec $1 'ps -ef'

Мне наоборот нужно.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.