Короткий ответ: так работает traceroute.
Длинный ответ: трассировка выполняется путем отправки пакетов UDP (по умолчанию в большинстве программ трассировки, обычно их можно изменить в командной строке для использования TCP или ICMP) с начальным значением TTL, равным 1, и их значения TTL монотонно возрастают. . Это позволяет первоначальному отправителю получать «сообщение об истечении времени ожидания пакета» от каждого последующего маршрутизатора по мере того, как TTL истекает по пути, достигая кульминации (надеюсь) в ответе, который говорит: «пакет доставлен в целости и сохранности!». Исходный отправитель (в данном случае mtr
) просто прослушивает эти сообщения об истечении срока действия пакета и печатает информацию для каждого места, где трассировка прервалась из-за истечения TTL.
openvt -c 40 /bin/agetty tty40 linux
запускает openvt
, указывая на использование VT 40; поэтому он открывает этот виртуальный компьютер и запускает на нем agetty
. Но указание tty40
в качестве аргумента для agetty
говорит последнему использовать VT 40 (независимо от того, где он был запущен ), так что он сам открывает VT 40 и запускается там.
Таким образом,
openvt -c 41 /bin/agetty tty40 linux
открывает VT 41, но затем agetty
открывает сам VT 40.
Для открытия ВТ достаточно использовать одну программу. Вы можете либо запустить agetty
непосредственно на любой виртуальной машине, либо указать ей запускаться там, где она была запущена :
agetty tty40 linux
openvt -c 40 agetty - linux
Если удалить параметр -c
, openvt
выберет первый доступный VT.