Как запустить несколько программ в одном окне терминала?

Nethogs может быть тем, что вам нужно.

debian/ubuntu/etc

apt-get install nethogs

или rhel/cent/etc

yum install nethogs

Вы запускаете его на сетевом интерфейсе, например,

nethogs eth0

Однако, его выход - это пропускная способность на процесс, отправленные и полученные данные. Вы также можете отслеживать несколько интерфейсов.

ОПИСАНИЕ NetHogs - это небольшой инструмент 'net top'. Вместо того, чтобы разбивать трафик на протоколы или подсети, как это делает большинство подобных инструментов, он группирует полосу- по ширине по процессам - и не зависит от специального модуля ядра, который должен быть загрузки. Поэтому, если вдруг возникло много сетевого трафика, вы можете запустить запустить NetHogs и немедленно увидеть, какой PID вызывает это, и если это какой-то крутящийся процесс, убейте его.

UPDATE: ОП попросил вывести данные в файл. Это можно сделать с помощью nethogs:

nethogs -d 1 eth0 > output.txt

-d задает временной интервал между записями... так что вы могли бы выполнить приведенную выше команду и получить желаемый результат.

UPDATE2 ОП говорит, что TCP и UDP - это требование. Тогда попробуйте использовать jnettop. Он немного старше, но поддерживает TCP и UDP. Он доступен в deb/ubuntu и, я думаю, в производных RHEL. пример:

jnettop --display text -t 5 --format CSV

Это должно быть передано в файл.

1
13.04.2017, 15:36
2 ответа

Поместите все в сценарий следующим образом:

#! /bin/bash
#
su -c '/usr/bin/tmux new-session -s "all" -d'
tmux send "path of Program 1" C-m
tmux rename-window "Program 1"

tmux new-window
tmux send "path of Program 2" C-m
tmux rename-window "Program 2"

tmux new-window
tmux send "path of Program 3" C-m
tmux rename-window "Program 3"

tmux attach

Он запустит новый сеанс tmux под названием all с 3 окнами, называемыми Program1 , Program2 и Program3 , каждая из которых выполняет каждую программу.

Даже если программа остановится, окно не закроется.

1
27.01.2020, 23:35

Вы можете оставить терминал открытым, выполнив команду с тем, что ожидает ввода пользователя:

tmux new-window 'make ; read'

Если ваша оболочка не поддерживает прочтите встроенную команду , вы можете использовать, например. sed -n q .

1
27.01.2020, 23:35

Теги

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