Существует ли способ выбрать несколькими условиями в 'PS'?

Начиная с версии 3.0 Xen предоставил передачу PCI паравиртуальному (PV) гость без расширений ЦП/материнской платы VT-d. Гость PV подразумевает, что гость выполняет специальное ядро Xen, которое знает о гипервизоре. Xen гостевые ядра PV существуют для Linux, NetBSD, FreeBSD, OpenSolaris и операционных систем Сетевого обеспечения Novell.

Xen не может предоставить передачу PCI HVM (полностью виртуализированный) гость без VT-d. Примером гостя HVM был бы Windows.

Эта запись Wiki обсуждает передачу PCI Xen.

12
26.07.2013, 09:35
4 ответа

ps является раздражающим тот путь. К счастью, существует pgrep, который имеет подобные опции выбора, но требует, чтобы они все соответствовали и затем производит соответствие pids. По умолчанию это производит тот на строку, но можно попросить использовать другой разделитель так, чтобы это работало с ps:

ps -f -p"$(pgrep -d, -u $USER -P 1)"
12
27.01.2020, 19:55

К сожалению, ps может только отменить выбор, кажется, нет ни один and оператор или способность добавить улучшения.

Можно включить в список справку pgrep получить список PIDs и канала это к ps как бы то ни было. Например:

$ ps -f $(pgrep -P 1 -u saml)
UID        PID  PPID  C STIME TTY      STAT   TIME CMD
saml      1986     1  0 Jul25 ?        SLl    0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
saml      2003     1  0 Jul25 ?        S      0:00 dbus-launch --sh-syntax --exit-with-session
saml      2004     1  0 Jul25 ?        Ss     0:23 /bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
saml      2147     1  0 Jul25 ?        S      0:04 /usr/libexec/gconfd-2
saml      2156     1  0 Jul25 ?        Ssl    0:09 /usr/libexec/gnome-settings-daemon
saml      2162     1  0 Jul25 ?        S      0:00 /usr/libexec/gvfsd
saml      2178     1  0 Jul25 ?        Ssl    0:01 /usr/bin/pulseaudio --start --log-target=syslog
saml      2180     1  0 Jul25 ?        Ssl    0:04 /usr/libexec//gvfs-fuse-daemon /home/saml/.gvfs
saml      2191     1  0 Jul25 ?        S      0:12 syndaemon -i 0.5 -k
saml      2193     1  0 Jul25 ?        S      0:00 /usr/libexec/gvfs-gdu-volume-monitor
4
27.01.2020, 19:55

ps не имеет очень гибких фильтров. Заставьте его отобразить больше, чем, что Вы нуждаетесь, указываете формат явно и фильтруете вывод. Awk будет часто работать хорошо на эту задачу.

ps -o pid= -o ppid= -o user= -o comm= -o args= |
awk -v uid="$(id -un myuser)" '$2 == 1 && $3 == uid'

Знаки "равно" после имен столбцов подавляют строку заголовка. Если Вы хотите видеть строки заголовка, заставьте фильтр распечатать первую неизменную строку:

ps -o pid -o ppid -o user -o comm -o args |
awk -v uid="$(id -un myuser)" 'NR == 1 || ($2 == 1 && $3 == uid)'

Если Вы захотите сделать некоторую автоматизированную обработку, то необходимо будет разделить данные вниз к PIDs только.

ps -o pid= -o ppid= -o user= |
awk -v uid="$(id -un myuser)" '$2 == 1 && $3 == uid {print $1}'
2
27.01.2020, 19:55

Tuve que verificar los PID iniciados por mi lote, así que tuve que verificar un PID y un PPID, este grep fue más útil para mí:

grep -c $$ /proc/CHILDPID/stat
0
27.01.2020, 19:55

Теги

Похожие вопросы