Можно проверить существующие счетчики от iptables, чтобы видеть, выглядит ли что-нибудь исключительным,
Также возможно добавить правила бухгалтерского учета к iptables, которые используются только для генерации транспортных количеств. Инструмент как Shorewall помогает сделать это и имеет определенную документацию относительно Правил бухгалтерского учета
Было исследование, показывающее, что большие буферы в маршрутизаторах могут вызвать проблемы производительности. Можно хотеть попытаться формировать трафик к немного меньше, чем пропускная способность сети. Shorewall предлагает несколько подходов к формированию трафика. Это может также использоваться для приоритизации определенных видов трафика.
При идентификации пользователя, использование пропускной способности которого является чрезмерным, у Вас есть несколько опций:
-H/-hold
опция состоит в том, чтобы сохранить Окно эмулятора терминала открытым, после того как приложения, запущенные в нем (оболочка или другой), вышли. В том состоянии ничего больше не может произойти.
Если Вы хотите запустить команду как задание интерактивной оболочки в xfce4-терминальном эмуляторе терминала и поддерживать оболочку в рабочем состоянии и использовать его в интерактивном режиме после того, как приложение вышло, с bash
, можно использовать $PROMPT_COMMAND
переменная среды, чтобы иметь xfce-terminal
запустите интерактивную оболочку, которая запускает данную команду непосредственно перед первой подсказкой.
xfce4-terminal \
-T eclipse \
--working-directory=/home/stefan/oximity \
-e 'env PROMPT_COMMAND="unset PROMPT_COMMAND; /opt/eclipse/eclipse" bash' \
\
--tab -T arandr \
--working-directory=/home/stefan/oximity \
-e 'env PROMPT_COMMAND="unset PROMPT_COMMAND; arandr /home/stefan/.screenlayout/oximity.sh" bash' \
\
--tab -T bash \
--working-directory=/home/stefan/oximity \
...
Тем путем команды являются заданиями той оболочки, что означает, что можно приостановить их с Ctrl-Z и возобновить их позже с fg/bg
как будто Вы ввели их при подсказке той интерактивной оболочки.
Это принимает, хотя это Вы не устанавливаете $PROMPT_COMMAND
в Вашем ~/.bashrc
. Также обратите внимание, что статус выхода команды не будет доступен в $?
.
Для создания это еще больше как команда вводилось в приглашение оболочки, можно даже добавить его к списку предыстории. Как:
xfce4-terminal -T /etc/motd -e 'env PROMPT_COMMAND="
unset PROMPT_COMMAND
history -s vi\ /etc/motd
vi /etc/motd" bash'
Тот путь, после того как Вы выходите vi
, можно нажать клавишу Up для вспоминания того же самого vi
команда.
Более легкий способ записать это:
PROMPT_COMMAND='unset PROMPT_COMMAND; history -s "$CMD"; eval "$CMD"' \
xfce4-terminal --disable-server \
-T /etc/motd -e 'env CMD="vi /etc/motd" bash' \
--tab -T top -e 'env CMD=top bash'
:
xfce4-terminal -e 'sh -c "cmd; exec bash"'
решение, как дали в других работах ответов, но имеет некоторые недостатки:
cmd
работает, который уничтожает внешнее sh
с тех пор существует только одна группа процесса для обоих sh
и cmd
.cmd
$PROMPT_COMMAND
подход, статус выхода команды не будет доступен в $?
.Можно работать приблизительно 1 выше путем выполнения:
xfce4-terminal -e 'sh -c "trap : INT; cmd; exec bash"'
Или:
xfce4-terminal -e 'sh -ic "cmd; exec bash"'
С тем последним Вы также сможете приостановить процесс с Ctrl-Z, но Вы не сможете использовать fg/bg
на нем. Вы сможете продолжить его в фоне хотя путем выполнения a kill -s CONT
на pid cmd
.
Насколько я понял Ваш вопрос, Вы хотите выполнить некоторые процессы в терминале, способности к Ctrl+C их и, после этого, сохранить окно открытым, с оболочкой.
Если я прав, это могло бы быть выполнено с командой как это:
xfce4-terminal -e "bash -c 'COMMAND; exec bash'"
xfce4-terminal
вкладкиМожно использовать этот взлом для добавления оболочки если/когда Вы Ctrl+C вкладка:
$ xfce4-terminal -H \
--tab -T bash -e "bash -c 'top;bash'" \
--tab -T git -e "bash -c 'top;bash'"
Это даст Вам следующее:
При выходе из оболочки без -H
терминал будет закрыт, также. С этим флагом будет продолжать работать терминал, но процесс оболочки закрывается и не может быть восстановлен.
Я думаю, что Вы пробуете к archieve, что Вы только запускаете свой терминал, и Ваша среда разработки запускает?
Можно создать сценарий оболочки и поместить все команды в нем. В конце сценария Вы только запускаете свою оболочку:
#!/bin/sh
gradle &
git &
... &
.... &
jboss &
$SHELL
# some cleanup commands if needed
Затем назовите этот сценарий через xfce4-terminal -e /the/script
. При выходе от $SHELL
родительский процесс (Ваш сценарий) законченный и фоновые задачи получит сигнал выхода и выйдет, также.
Если Вы хотите поддержать их, используйте, например. nohup jboss &
в Вашем сценарии
bash
сценарии, нет никакой истории вообще, поскольку нет никакого редактирования строки или взаимодействия с пользователем, если Вы не используетеread -e
в Вашем сценарии (и Вы будете видеть этоhistory -s text
работы там к началу история, замеченная этимread -e
). Здесь, мы не работаемhistory -s
из сценария, но от$PROMPT_COMMAND
рычаг интерактивной оболочки. – Stéphane Chazelas 25.08.2017, 16:42