[РЕШЕНО] mc тормозит при старте

(Не знаю, соответствует ли это тематике данного формуа, но более подходящего не нашёл.)
Обычно mc запускается быстро (менее секунды), но иногда тормозит на несколько секунд, а то и десятков секунд. И если уж торомозит, то тормозит везде - хоть первый экземпляр, хоть второй, хоть в эмуляторе терминала, хоть в ядерной консоли. Тема эта вечная, опубликована куча заклинаний, и все они мне не помогают.
Так вот, я нашёл закономерность, когда он у меня тормозит: когда (1) сеть как бы есть, и (2) реального выхода в интернет нет. У меня интернет через ADSL-модем, подключён через интерфейс eth1 (eth0 ведёт к выключенному компьютеру). NetworkManager-а и прочей такой фигни с некоторых пор нет, всё конфигурируется при загрузке командами ip. Ситуацию показывают следующие примеры.
Пример 1. Модем связался с интернетом, линк поднят - запуск mc не тормозит.
Пример 2. Выдёргиваю сетевой кабель из модема (eth1 остаётся при это UP) - запуск mc тормозит.
Пример 3. Ввожу ip set down eth1 - запуск mc не тормозит.
Всё то же самое я проделывал в ubuntu 12.04, предварительно прибив NetworkManager, - там mc не тормозит никогда. То есть, похоже, это Arch-специфический глюк.
Вот как выглядит сеть, когда mc тормозит:
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 40:61:86:85:ce:69 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.21/24 scope global eth0
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:02:44:88:e0:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.3/24 scope global eth1
Кто виноват? Что делать?
Как всегда: при запуске ругань есть? /etc/hosts правильно заполнен? на чистом профиле пробовали?
vadik
Как всегда: при запуске ругань есть? /etc/hosts правильно заполнен? на чистом профиле пробовали?
Ругани нет; hosts я не трогал, там только localhost; про чистый профиль - не понимаю профиль чего.
Раньше у меня был Archbang с ModemManager - там этот эффект тоже возникал во время "пересменки" (когда модем уже соединился с компьютером, но ещё не соединился с интернетом). Сейчас Arch, поставленный честно с нуля, никаких автоматических сетевизмов нет вообще. В rc.local (запуск которого включён) сеть конфигурируется вот так:
ip link set enp2s0 down
ip link set enp3s5 down
ip link set dev enp2s0 name eth0
ip link set dev enp3s5 name eth1
ip link set eth0 up
ip addr add 192.168.1.21/24 dev eth0
ip link set eth1 up
ip addr add 192.168.2.3/24 dev eth1
ip route del default
ip route add default via 192.168.2.1
Eth0 - связь с другим компьютером, который почти всегда выключен. Eth1 - связь с ADLS-модемом.
Да забейте вы на сеть. Проблемы из-за сети могут быть в том случае, если вас при закрытии mc в неактивной вкладке был какой-нибудь сетевой ресурс. Покажите лучше весь /etc/hosts. Хм, уже не нужен. Чтож, в /etc/hostname имя правильное?
akorop
hosts я не трогал
Вот и причина тормозов. Добавьте в этом файле строчку для разрешения доменного имени Вашего компьютера. Или в строчке 127.0.0.1 в конце - имя компа.
Суть в том, что в случае "как бы присутствия сети" mc (даже скорее не специально, а подчиняясь правилам работы библиотек, используемых для его написания) пытается отрезолвить имя хоста, на котором запущен. Естественно, если его нет в локальном файле /etc/hosts, обращение идет на внешний DNS из /etc/resolv.conf. И тут засада - DNS не отвечает, а положенные таймауты все равно выдерживаются.
Можете это наблюдать, если интересно, запустив tcpdump на поднятом, но не подключенном интерфейсе.
Вот и вся загадка.
kurych, если я правильно понял вики, то /etc/hosts уже не нужен.
Note: Вам теперь не нужно больше редактировать /etc/hosts. Пакет nss-myhostname будет обеспечивать разрешение имен, и устанавливается на все системы по умолчанию.
Что-то я этого "волшебного" пакета nss-myhostname не нахожу...
Есть в AUR nss-myhostname-separate, но не факт, что он у всех, у кого возникают проблемы, сам установится
UPD: вполне возможно, что и не надо было бы редактировать hosts, если бы состояние интерфейсов соответствовало действительности или был настроен локальный DNS. Ведь при "опущенных" портах все работает нормально. Тормоза имеют место именно при ненормальном поведении сети. Логику я примерно описал выше.
kurych
akorop
hosts я не трогал
Вот и причина тормозов. Добавьте в этом файле строчку для разрешения доменного имени Вашего компьютера. Или в строчке 127.0.0.1 в конце - имя компа.
Помогло, спасибо! Это именно оно. И с Убунту разница именно в этом - там "из коробки" есть имя хоста в hosts.
Это бы в FAQ какой-то надо. Наверняка ведь не только mc на этом может обламываться. А ещё лучше бы, чтобы "из коробки" имя хоста было в hosts...
kurych
Note: Вам теперь не нужно больше редактировать /etc/hosts. Пакет nss-myhostname будет обеспечивать разрешение имен, и устанавливается на все системы по умолчанию.
Что-то я этого "волшебного" пакета nss-myhostname не нахожу...
Есть в AUR nss-myhostname-separate, но не факт, что он у всех, у кого возникают проблемы, сам установится
UPD: вполне возможно, что и не надо было бы редактировать hosts, если бы состояние интерфейсов соответствовало действительности или был настроен локальный DNS. Ведь при "опущенных" портах все работает нормально. Тормоза имеют место именно при ненормальном поведении сети. Логику я примерно описал выше.
В английской версии этот пакет не упоминается. Но
# echo myhostname > /etc/hostname 
делать рекомендуют. Как то запутано получается.
2akorop: Не совсем согласен. Ubuntu вообще для домохозяек, поэтому там как можно более универсально делают. И какими-то хитрыми костылями все завязывают. Не знаю, как сейчас, но раньше там даже Firefox переходил в автономный режим, если не был доступен интернет. (Меня это изрядно доставало).
Просто в Вашем случае из-за статики сеть иногда находится не совсем в адекватном состоянии. Поэтому нужна такая поправка. То есть, если человек не пользуется менеджерами сети, а настраивает все руками и статикой, то предполагается, что он знает, что делает.
 
Зарегистрироваться или войдите чтобы оставить сообщение.