Поскольку вы получаете замедление после входа в систему , технически вам нужно проверить, что может произойти между логином и первым приглашением оболочки .
пользовательская настройка оболочки может делать множество творческих вещей , которые могут привести к ужасным сбоям при некоторых особых условиях -
как при входе в систему перед фактическим переходом в интерактивный режим,
или пока DISPLAY еще не определен.
В этом случае мы ищем блокирующие действия и тайм-аут или выполняющие медленные действия -
как автоматическое монтирование в мультяшном стиле все домашние каталоги,
всех нынешних и бывших сотрудников.
Конечно, кроме вашего .
Это уже было смонтировано.
Плохо звучит?
Нет. Его легко найти, и для большинства это смешно.
Время после входа в систему, до показа оболочки, используется любыми задачами обслуживания, это замедлит ее. Но задачи технического обслуживания выполняются только время от времени. И, конечно же, они не запускаются сразу все вместе, как каждую неделю при первом входе в систему после понедельника 8:00 - потому что это было бы медленно, верно?
Происходит много неожиданных вещей
Проиллюстрированный момент: что после входа в систему может произойти многое, до того, как будет показана оболочка.
Один класс проблем, которые, как я заметил, замедляются при входе в систему в Ubuntu, - это генерация сообщения дня - motd.
Это текст, отображаемый перед первым приглашением оболочки при входе в систему.
Оно может быть пустым или просто приветствием.
Взгляните на ls -l /etc/update-motd.d
$ ls -l /etc/update-motd.d
total 28
-rwxr-xr-x 1 root root 1220 Jul 3 2012 00-header
-rwxr-xr-x 1 root root 1358 Jul 3 2012 10-help-text
-rwxr-xr-x 1 root root 149 Mar 19 2012 90-updates-available
-rwxr-xr-x 1 root root 147 Aug 8 2012 91-release-upgrade
-rwxr-xr-x 1 root root 142 Mar 19 2012 98-fsck-at-reboot
-rwxr-xr-x 1 root root 144 Mar 19 2012 98-reboot-required
-rwxr-xr-x 1 root root 1158 Jul 3 2012 99-footer
Особенно 90-updates-available
в этом примере время от времени кажется очень медленным, поэтому проверьте, что вы там найдете, и, возможно, отключите некоторые из них для тестирования, переместив их в /etc/update-motd.d.disabled
.
Запустите dtruss
и посмотрите, что делает системный вызов процесса:
dtruss -p55761
Это подскажет вам, какой системный вызов процесса с PID 55761 в данный момент задействован. Если этот системный вызов получит доступ к какому-либо файловому дескриптору, то lsof
скажет вам, какой файл там открыт.
lsof -p55761
Если файл является трубой или сокетом, я не знаю, как найти, что если что-то находится на другой стороне.