Как просмотреть информацию о процессе для «host» и подобных команд

Что ж, может быть не хорошая идея захватывать вывод, обрабатывать и отображать вывод каждой команды, которую вы вводите на терминале.

Но вы можете сделать это для конкретной команды черезtee

your-command | tee saved-output | processing-tool

Когда вы увидите результат обработки инструмента -, вы можете посмотреть на saved-output, например, с помощью cat(, если короткий вывод ), или less(, если длинный вывод ).

Пример:

$ LANG=C sudo lshw | tee saved-output | grep -i -A2 disk
        *-disk              
             description: ATA Disk
             product: KINGSTON SKC300S
             physical id: 0.0.0
--
        *-disk
             description: ATA Disk
             product: WDC WD4002FYYZ-0
             vendor: Western Digital
$ less saved-output

После диалога во временном чате предлагаю

Прямое использование vialogработает, как в следующем примере.

vialog 2>&1 | tee saved-output | grep 'docker container ls' && echo 'it was mentioned'

В реальном случае, я думаю, вы хотели бы начать что-то более продвинутое, чем echo 'it was mentioned', но это только демонстрационный пример. И все может быть эффективнее, если вы встроите специальные проверки в vialogи отключите оповещения, которые, вероятно, не нужны в вашем случае.

Скриншот во время диалога:

enter image description here

Скриншот после диалога:

enter image description here

Таким образом, вы можете легко проверить, не найдена ли вызываемая команда:

$ LANGUAGE=C vialog 2>&1 | tee saved-output | grep -i 'Command.*not found' && echo 'it was mentioned'
Command 'docker' not found, but can be installed with:
it was mentioned
$ cat saved-output 
----- start vialog at 2019-01-12 18:57:33 ----------------------------
$ docker container ls

Command 'docker' not found, but can be installed with:

sudo apt install docker.io

$ exit
exit
------- end vialog at 2019-01-12 18:58:01 --- used 28 seconds

0
09.02.2021, 16:49
1 ответ

Пинг запускается один раз :у него есть собственный внутренний таймер для повторения задачи, но тот же процесс остается там до тех пор, пока не истечет отсчет, или пока вы не остановите его, в зависимости от параметров.

Host — это внешняя команда, а не встроенная -оболочка, поэтому она не имеет ничего общего с подпроцессами -. Но он работает до завершения 50 000 раз. Вероятность того, что он находится в таблице процессов, когда ps | grepищет его, составляет, вероятно, 1%. Если вы также запустите ps в цикле, в конечном итоге вы можете увидеть несколько совпадений. Это возможно при двух запущенных диагностических процессах, создание процесса hostможет никогда не синхронизироваться с ps из-за некоторого ограничения планировщика.

1
18.03.2021, 22:31

Теги

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