Как Вы передаете данные? (rsync по ssh? scp? sftp? что-то еще?)
rsync позволит Вам ограничивать пропускную способность (см. опцию - bwlimit=KBPS). rsync-e ssh - bwlimit..
С другой стороны, Вы могли установить qdisc или эквивалентный, чтобы сделать необычное ограничение уровня, но я подозреваю, что в Вашем случае это было бы серьезным излишеством. Документация относительно этого доступна в ПРАКТИЧЕСКОМ РУКОВОДСТВЕ Расширенной маршрутизации и Управления трафиком Linux
Процесс, запущенный xterm
будет лидер сессии в управлении терминала.
Когда терминал уходит, тот процесс автоматически получают сигнал SIGHUP (сопровождаемый SIGCONT). Это отправляется ядром похожим способом, которым процессы получают SIGINT при нажатии CTRL-C.
Кроме того, оболочка может отправить SIGHUP некоторым его детям после выхода (см. disown
в некоторых оболочках для отключения этого)
Ваш вопрос отвечает на себя, это происходит, потому что эти процессы работают как дети под эмулятором терминала. Таким образом, Вы уничтожаете эмулятор терминала, и при этом, уничтожаете все дочерние процессы (так как дети работают под той же группой процесса как эмулятор терминала управления).
Посмотрите, например, следующее:
csb@darwin[~]$ ps fauwx | grep -A6 "xfce4-terminal" | awk '{ for (i = 2; i <= 9; i++) $i="" ; print $0 }'
csb 0:32 xfce4-terminal --geometry=271x65 --display :0.0 --role=Terminal-0x1340050-2606-1351620352 --show-menubar --show-borders --hide-toolbars --working-directory /home/csb --tab --working-directory /home/csb
csb 0:00 \_ gnome-pty-helper
csb 0:00 \_ bash
csb 0:00 |
\_ ssh [redacted]
csb 0:00 \_ bash
csb 0:00 \_ ps fauwx
csb 0:00 \_ grep --color=auto -A6 xfce4-terminal
csb 0:00 \_ awk { for (i = 2; i <= 9; i++) $i="" ; print $0 }
Все эти процессы работают при 'xfce4-терминальных' процессах, поэтому если я уничтожу тот процесс затем, то он уничтожит автоматически все дочерние процессы в группе процесса... тот же путь, например, который выход из окна эмулятора терминала обязательно уничтожил бы мое соединение SSH.
Программы, такие как оболочки создают новые группы процесса, обычно помещая связанные дочерние процессы в группу. Каждое задание является группой процесса. Вне ядра оболочка управляет заданием путем отправки сигналов в группу процесса задания с killpg системным вызовом, который поставляет сигнал всем процессам в группе процесса.
killpg
системный вызов в той точке.
– Kevin Cox
06.11.2012, 15:20
Во-первых, я не могу воспроизвести mplayer выживание уничтожаемого терминала, с помощью xterm
.
Причина это умирает, то, что это получает SIGHUP от, он - смерть родителя.
disown
который очень полезен. – math 04.01.2013, 19:42