Зависает логин терминала

27

У меня странная проблема с моим новым MacBook Pro (конец 2016 года, сенсорная панель).

Он работает нормально, а затем, после некоторого использования, открытие новых окон терминала не работает, потому что loginзависает. Перезагрузка устраняет проблему.

Похоже, что это проблема некоторых других людей, поэтому я уже испробовал все их решения (из 1 и [2] ):

  1. Удаление ~/Library/Preferences/com.apple.Terminal.plist
  2. Установка моей оболочки по умолчанию для другой оболочки (от /bin/zshдо /bin/shили /bin/bash)
  3. Удаление или очистка мой .profile, .zprofile... Это не работает , и я могу подтвердить , что проблема возникает перед оболочкой даже вызывается, потому что если я в echo HEYкачестве первой линии моего .zshenvэто еще не дошло. Это должно быть loginпричиной проблем. Редактирование /etc/profileдля добавления эха вверху также ничего не показывает
  4. Изменение Run command:настройки в моем терминале конфигурации на что-то подобное echo fooтакже не работает (если оставить Run inside shellфлажок или не проверено, ничего не изменится).

Другие заметки:

  • Как и в [2] , ssh-add -Kне сохраняется ключей между перезагрузками, с чем у меня никогда не было проблем.
  • Консоль не показывает никаких подозрительных ошибок или предупреждений.
  • Открытие нового Terminalокна создает файл tty ( /dev/ttys<number>).
  • Когда это происходит, не имеет значения, использую ли я Terminal.app или iTerm.app
  • У меня довольно чистая установка (только что получил свой ноутбук, не восстановил никаких резервных копий, просто установил некоторые приложения с помощью brew installи brew cask install).

Это действительно трудно отладить, потому что я не могу воспроизвести его, и часто я не могу открыть новый терминал, чтобы даже попытаться выяснить, что происходит.

У кого-нибудь есть советы?

Обновить:

Используя iTerm, я смог получить оболочку, установив команду запуска в /bin/bash. В этой оболочке, однако, sudoне работает. Он виснет (без показа подсказки) и ctrl-Cи ctrl-Dне делать никакой работы , когда он виснет.

Использование некоторых других программ также не работает в этой оболочке: nodeили /usr/local/bin/nodeоба зависают. Насколько я могу судить, это программы, которые в /usr/local/bin.

Обновление 2:

brew list --full-name Результаты в этих пакетах:

autoconf
automake
blueutil
boost
cabal-install
cairo
cfssl
cmake
coreutils
doxygen
editorconfig
erlang
ffind
ffmpeg
flow
fontconfig
fontforge
freetype
gdbm
gettext
ghc
git
glib
go
gobject-introspection
graphicsmagick
harfbuzz
haskell-stack
highlight
icu4c
influxdb
jemalloc
jpeg
keybase
lame
libevent
libffi
libpng
libtermkey
libtiff
libtool
libuv
libvterm
libxml2
lua
mongodb
msgpack
nginx
node
openssl
openssl@1.1
pango
pcre
pixman
pkg-config
postgresql
protobuf
python
python3
rabbitmq
readline
reattach-to-user-namespace
redis
sqlite
the_silver_searcher
thefuck
tmux
unibilium
unixodbc
wxmac
x264
xvid
xz
yarn
z
zsh
josegonzalez/php/php54
neovim/neovim/neovim

Обновление 3:

Эти пункты соответствуют ответу @ Monomeeth:

  1. Когда это происходит, loginэлемент отображается в мониторе активности. (Force) Выход из него также закрывает окно терминала, которое висело. Закрытие окна вручную не делает loginпроцесс уходит в Activity Monitor.

  2. Заголовок терминала Terminal — login — term big — ttys001 — 89x18 — ⌘1, где term bigимя настройки.

  3. В sudoмониторе активности нет процессов. Я могу создать sudoпроцесс, открыв iTerm.app (который использует bash) и запустив его sudo echo okтам. Это не может быть Quit, но Force Quit работает и убивает его:

    bash-3.2 $ sudo echo ok Убит: 9

Обновление 4:

Когда это происходит, работает loginиз оболочки, которая все еще доступна , работает, в то время как loginв новых оболочках, кажется, зависает.

Обновление 5:

Недавно я приобрел новый ноутбук (MacBook Pro 2017, без сенсорной панели), и проблема сохраняется.

Я также переключил оболочки: теперь я использую fishдовольно ванильный конфиг. Я думаю, что исключает оболочку как виновника.

ОС также была обновлена ​​до 10.13.3 (17D47) High Sierra.

Я попытался установить как можно меньше на эту машину:

brew list —-full-names

coreutils 8.29
dnsmasq 2.78
faac 1.29.9.2
fdk-aac 0.1.5
ffmpeg 3.4.1
fish 2.7.1
freetype 2.9
gdbm 1.14.1_1
gettext 0.19.8.1
git 2.16.1
highlight 3.42
htop 2.0.2_2
icu4c 60.2
imagemagick 7.0.7-22
jemalloc 5.0.1
jpeg 9b
lame 3.100
libav 12.2
libogg 1.3.3
libpng 1.6.34
libtermkey 0.20
libtiff 4.0.9_1
libtool 2.4.6_1
libuv 1.19.1
libvorbis 1.3.5_1
libvpx 1.7.0
libvterm 681
libyaml 0.1.7
lua 5.3.4_2
luajit 2.0.5
mongodb 3.6.2
msgpack 2.1.5
neovim 0.2.2
node 9.5.0
openssl 1.0.2n
opus 1.2.1
parallel 20180122
pcre 8.41
pcre2 10.30
postgresql 10.2
python 2.7.14_3
python3 3.6.4_2
readline 7.0.3_1
ripgrep 0.7.1
ruby 2.5.0
sqlite 3.22.0
the_silver_searcher 2.1.0
thefuck 3.25_1
unibilium 1.2.1
x264 r2795
xvid 1.3.5
xz 5.2.3
youtube-dl 2018.02.08

Не уверен, что это может быть сейчас. Единственные приложения, о которых я могу думать, - Divvyили, Apptivateтак как они оба кажутся устаревшими. Это пересечение того, что было установлено на старой против новой машины:

coreutils
ffmpeg
freetype
gdbm
gettext
git
highlight
icu4c
jemalloc
jpeg
lame
libpng
libtermkey
libtiff
libtool
libuv
libvterm
lua
mongodb
msgpack
node
openssl
pcre
postgresql
python
python3
readline
sqlite
the_silver_searcher
thefuck
unibilium
x264
xvid
xz

Обновление 6:

Также вот скриншот: Скриншот

Обновление 7:

Мой env обычно выглядит так:

Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.k60Nf5UBfq/Render
DISPLAY=/private/tmp/com.apple.launchd.6FMoWPSlJI/org.macosforge.xquartz:0
EDITOR=env VIRTUAL_ENV= nvim -u /Users/john-doe/.config/vim/vimrc -p
GNUTERM=X11
HOME=/Users/romeo
HOMEBREW_NO_EMOJI=1
HOMEBREW_PREFIX=/usr/local
LANG=en_GB.UTF-8
LESS=-RI
LESSHISTFILE=-
LOGNAME=romeo
LS_COLORS=di=00;31:ex=00;37:mi=00;41;30:tw=00;33
MANPATH=/usr/local/opt/coreutils/libexec/gnuman
PAGER=less
PATH=/Users/john-doe/.config/fisherman/re-search:/usr/local/opt/python/libexec/bin:/usr/local/opt/ruby/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin
PWD=/Users/romeo
SECURITYSESSIONID=186a8
SHELL=/usr/local/bin/fish
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.fQn5sHMuZP/Listeners
TERM=xterm-256color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=400
TERM_SESSION_ID=D2AF7A50-8B41-4793-9201-8304A02C9B29
TMPDIR=/var/folders/15/zcyyfw_x7638z7vfg5zd85z40000gn/T/
USER=romeo
XDG_CACHE_HOME=/Users/john-doe/.cache
XDG_CONFIG_HOME=/Users/john-doe/.config
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
romeovs
источник
1
Это может быть неудачное предложение, но вы пытались связаться со службой поддержки Apple? Ваш вопрос не получил большого внимания с тех пор, как вы его опубликовали, и их служба поддержки, возможно, слышала об этой проблеме. Мое единственное другое предложение было бы переустановить MacOS. Однако, поскольку ваш Mac такой новый, я не знаю, сработает ли это.
NoahL
@klanomath готово!
romeovs
Чтобы выяснить, что делает вход в систему, выберите его в Activity Monitor и выберите Sample Process. То же самое касается других процессов, которые зависают. Однако этот уровень отладки может не подходить для вопросов и ответов StackExchange. Может быть лучше подать в Apple отчет об ошибке, включая образец файла, либо найти кого-то, кто может предложить поддержку для диагностики проблемы на этом уровне. См developer.apple.com/bug-reporting
Chris Page
Как долго это висит? Вы пытались оставить его работать в течение десяти минут? Ваша машина связана с сетью Open Directory? В частности, при входе в систему необходимо получить информацию о вашем пользователе, и если вы находитесь в сети OD с занятым / не отвечающим сервером каталогов, ответ может занять несколько минут; другие программы также получают информацию о пользователях и могут страдать от этой проблемы.
Крис Пейдж
Не пытался ждать дольше, попробую в следующий раз. Я не связан с сетью Open Directory, эти ошибки также возникают, когда я не в сети.
romeovs

Ответы:

13

Как я уверен, вы знаете, что устранение неполадок является процессом устранения и часто требует немало терпения. Я хотел бы попробовать несколько вещей, чтобы попытаться добраться до сути этого для вас.

1. Подтвердите, что он зависает при входе

Если процесс, на котором он висит, действительно во время входа в систему , это означает, что процесс все еще ожидает создания сеанса входа в систему. Если предположить, что это так, то он еще не попытался бы запустить оболочку.

Чтобы подтвердить это, в следующий раз, когда вы столкнетесь с этой проблемой, запустите Activity Monitor, чтобы проверить, работает ли оболочка или вы видите только процесс входа в систему .

Как только у вас будет возможность сделать это, сообщите о том, что вы нашли.

ПРИМЕЧАНИЕ. - Если у вас открыты другие терминалы, убедитесь, что вы проверяете соответствующий процесс. Я предполагаю, что процесс зависания - это процесс с наибольшим номером идентификатора процесса (PID).

2. Как называется Терминал?

В следующий раз, когда у вас возникнет эта проблема, вы можете принять к сведению, что заголовок окна терминала и отчитаться?

3. Убить Судо

Вы заявляете, что перезагрузка вашего MBP всегда решает эту проблему.

Однако в следующий раз, когда у вас возникнет эта проблема (возможно, после того, что я описал в пункте 1 выше), я бы хотел, чтобы вы попытались убить sudo из Activity Monitor.

Как только вы попробовали это, дайте нам знать, что происходит.

4. Попробуйте переместить ваши файлы .bash *

Возможно (по разным причинам) у вас может быть файл .bash_profile в вашем пользовательском каталоге, и это вызывает периодические проблемы. Это то, о чем вы можете даже не знать, но вы можете использовать Automator для запуска скрипта, который находит и перемещает любые файлы .bash.

Вот пример сценария для этого:

cd ~

mkdir moved
for F in .bash*
do
    mv $F moved
done

Этот скрипт перемещает все файлы, начиная с .bash в вашей домашней папке, во вновь созданную перемещенную подпапку.

После запуска скрипта проверьте эту папку и сообщите нам, есть ли у вас какие-либо файлы в ней.

ПРИМЕЧАНИЕ. - Вы можете пометить новую подпапку как угодно. Для этого просто измените два вхождения перемещенных в сценарии на любой ярлык, который вы хотите использовать.

[ОБНОВИТЬ]

Еще несколько вещей, чтобы попробовать.

5. Попробуйте очистить файлы * .asl

Если вы еще этого не сделали, попробуйте очистить файлы * .asl. Для этого используйте следующее:

sudo rm -rf /private/var/log/asl/*.asl

ПРИМЕЧАНИЕ. - Это может занять некоторое время, поскольку создается новая оболочка. После завершения убедитесь, что вы полностью вышли из Терминала, чтобы изменения вступили в силу.

6. Безопасный режим

Заметили ли вы разницу в поведении, когда вы запускаете свой MBP в безопасном режиме? Для загрузки в безопасном режиме:

  1. Полностью выключите ваш Mac
  2. Перезагрузите ваш Mac
  3. Немедленно нажмите Shiftклавишу и удерживайте ее нажатой
  4. Отпустите Shiftклавишу, когда увидите окно входа в систему (ПРИМЕЧАНИЕ. Если вы включили FileVault, вам может потребоваться войти в систему дважды).
  5. Как только ваш MBP запустится, попробуйте использовать Терминал и посмотрите, сможете ли вы повторить проблему?
  6. Когда вы закончите, вы можете выйти из безопасного режима, перезапустив свой MBP как обычно

7. Открыть каталог

Это, вероятно, не относится к вашему случаю, поскольку вы не упоминаете об этом, но если вы подключены к сети Open Directory, это также может вызвать проблемы. Обычно это влечет за собой ожидание в течение 10-15 секунд, но я видел сообщения о том, что вход в систему через терминал занимает пять или более минут для завершения в этой ситуации.

Мономет
источник
Благодарность! Я использую zsh, и даже с пустым .zshrc, .zprofile, .profileи т.д. идентификатор не происходит, плюс это не объясняет , почему другие программы в /usr/local/binтоже висят, так что я думаю 4. это из картины. Я вернусь с ответом на другие вопросы, как только получу их.
romeovs
Добавлено обновление с ответами на эти вопросы. loginкажется виновником, но это все еще не объясняет, почему это работает в iTerm с bash.
romeovs
Я обновил свой ответ. Однако я только что понял, что вы не указали, как долго вы пытались дождаться завершения входа в Терминал? Было бы неплохо узнать, войдет ли он в конце концов или просто зависнет на неопределенное время.
Мономет
@romeovs Просто интересно, вы когда-нибудь решали эту проблему?
Monomeeth
Нет :( все еще работает над этим. Это начало происходить намного меньше, хотя.
romeovs
6

Это выглядит как идеальное решение для вас, превышающее максимальное количество процессов на пользователя (или, возможно, максимальное количество процессов).

При стандартной установке macOS вы получаете 709 на пользователя ( ulimit -u) и 1064 макс процессов ( sysctl -a | grep maxp)

Самый простой способ увеличить это - установить Server.app из App Store и перезагрузить компьютер. Вы также можете установить режим производительности для более высоких пределов.

Поскольку вы не описали свою настройку (версию ОС и сборку), вот несколько советов - обязательно проверьте, не ограничивает ли SIP возможность изменения файлов, если вы читали некоторые из старых статей об изменении ограничений, не прибегая к установке сервера. приложение:

bmike
источник
Отличный момент! Я даже не думал об этом. :)
Monomeeth
@ Мономет, твой ответ потрясающий. В нем много замечательных вещей.
bmike
@bmike Есть ли способ, которым я могу проверить общее количество процессов, чтобы убедиться, что это так? Может быть, я даже смогу воспроизвести его, создав 709 процессов?
romeovs
5

Я также видел это в течение нескольких месяцев. Чрезвычайно расстраивает. Единственное, что исправляет это перезагрузка.

  • Середина 2015 MBP (без сенсорной панели)
  • MacOS 10.12.6 бета

Иногда зависания при входе в систему происходят после взаимодействия с tmux.

Я безуспешно перепробовал все рекомендуемые подходы.

Не уверен, что это связано, но a lsof -p LOGIN_PIDпоказывает довольно массивный файл /private/var/db/dyld/dyld_shared_cache_x86_64hдля зависшего процесса входа в систему.

29.08.2017 Обновление:

Все еще есть проблема. Иногда, когда машина попадает в плохое состояние, у меня открываются окна терминала, которые уже успешно вошли в систему и которые я могу использовать для отладки.

Многие команды не выполняются должным образом, но все они показывают наличие проблем с записью (я думаю, к stdout). Например, когда я бегу ls -al, я вижу ls: write errorиспущенное в stderr. Когда я бегу ls -al > /dev/null, в stderr ничего не выводится.

Zack
источник
Удачи в выяснении этого?
romeovs
Проблема решена для меня после обновления моей ОС. Это было исправлено для нескольких минорных версий, и в настоящее время я использую 10.13.3 (17D47).
Zack
Я бегу 10.13.3 (17D47), а также! Это стало менее частым, но все же иногда происходит.
romeovs
4

Важно рассматривать реальную проблему, а не только симптом. Так что попробуйте следующие предложения и обновите их, основываясь на том, что может предложить и другие меры.

  1. Какой пользователь владеет терминалом? :
    Первое, что я думаю, - это может быть связано с настройкой вашей учетной записи. Если терминал пытается получить доступ к ресурсам или каталогам, которые может сделать только пользователь-администратор (если у вас нет учетной записи администратора), это может привести к зависанию - не позволяя вам получить доступ к терминалу. Поэтому продолжайте и убедитесь, что когда вы начинаете терминальную сессию, она является локальной для вашего пользователя, а не для другого пользователя. Тот факт, что вы не можете создать процесс sudo, указывает мне на это.

  2. Тип Control-Z или Command-Z:
    эта последовательность управляющих клавиш приостанавливает работу программы и выдает приглашение оболочки. Теперь вы можете ввести команду jobs, чтобы найти имя программы, затем перезапустить программу с помощью fg или завершить ее с помощью kill.

  3. Нажмите Command-C :
    это прервется, если терминал пытается запустить программу в фоновом режиме. Попробуйте пару раз. Обратите внимание, если вы видите какой-либо вывод

  4. Тип Control-Q :
    Если вывод был остановлен с помощью Control-S, он перезапустит его.

  5. Получить альтернативную оболочку :
    если вы хотите опробовать другую оболочку в течение нескольких дней, их поведение может иногда помочь вам понять проблему с терминалом, если они действуют определенным образом. Проверьте эти ссылки ниже для альтернатив

https://git-scm.com/downloads/guis
https://computers.tutsplus.com/tutorials/beyond-terminal-4-os-x-terminal-alternatives--mac-56217

Поможет узнать следующее, если не упомянуто уже:

  • Как вы инициируете сеанс терминала? Это через прожектор или значок на рабочем столе или каким-то другим способом?

  • Что делает терминал, когда он зависает? Это происходит во время выполнения команды (та же команда каждый раз, когда она зависает) или просто зависает с момента запуска терминальной сессии / окна.

  • Для чего вы обычно используете свой терминал? Если вы в основном используете команды, связанные с git, я бы предложил использовать что-то вроде Github для Mac, поскольку вы обычно можете делать большинство вещей оттуда.

pal4life
источник
Ctrl-Z и Ctrl-C оба просто отображаются на экране как ^Zи ^CCtrl-Q ничего не делает. Я обычно открываю оболочку, используя Command-N в Терминале. Я программист на полный рабочий день, поэтому я использую терминал в основном для всего. Терминал зависает до того, как что-либо выполнено (включено login).
romeovs
@romeovs А как насчет Pointer 1 о вашем типе пользователя? Скриншот с проблемой также поможет. Спасибо
pal4life
Я по умолчанию пользователь и администратор на моем MacBook.
romeovs
4

Я попытался бы отключить SIP и войти в систему dtrace, чтобы найти основную причину (Чтобы отключить и снова включить SIP, см. Http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac -os-x / )

$ csrutil status
System Integrity Protection status: disabled.
$ cp /usr/bin/login /tmp
$ sudo dtruss /tmp/login

Пытаясь дать вам пример выходных данных, я просто обнаружил, что все гораздо проще, чем я думал. Не нужно отключать SIP, просто скопируйте логин.

dtuss вернет системные вызовы и может дать подсказку, где что-то пойдет не так.

cp /usr/bin/login .
sudo ls

дай свой пароль. Тогда делай

sudo dtruss -d -e ./login 2> dtruss_login.txt

введите ваше имя пользователя, нажмите Enter

введите пароль, нажмите ввод

введите «выход», нажмите Enter

и, наконец, загрузите dtruss_login.txt, например, на https://gist.github.com/

Вы можете скопировать содержимое файла в буфер обмена, как это

cat dtruss_login.txt | pbcopy

Вы можете найти пример входа в систему здесь: https://gist.github.com/wolframteetz/49c5188c9dfe68a3841fa18496679579

Второе целое число в каждой строке - время, затраченное на вызов.

Конечно, было бы замечательно, если бы вы могли запустить это, когда вход в систему зависает, но если я вас правильно понял, это невозможно .... может быть, у вас или у кого-то еще есть идея, как «dtruss login», когда терминал завис ?

user2707001
источник
Уч. Это похоже на боль, возникающую через несколько часов или дней после начала входа в систему. Можете ли вы сузить, что dtrussможет захватить и показать?
bmike
Если логин зависает при системном вызове, что вполне вероятно, он покажет вам. Если он зависает между системными вызовами, он покажет вам, между которыми, и подскажет, что на самом деле происходит. например, если он зависает после того, как он читает определенный файл конфигурации системным вызовом, наиболее вероятная ошибка возникает во время анализа этой конфигурации. Вы должны внимательно посмотреть на это тогда. Может также быть связан с сетью ... кто знает, пока вы не
отладите
Проблема в том, что я не могу вручную воспроизвести проблему, пока не стало слишком поздно.
romeovs
Затем выполните команду в цикле «навсегда» и выполните «>> dtruss_login.txt 2> & 1» вместо «2> dtruss_login.txt». Как только ошибка появится, вы увидите ее в конце вывода.
user2707001
Я наконец-то смог получить журнал dtruss: gist.github.com/romeovs/6661ae0db77e57281b531676cc5dc007 Поскольку вход в систему зависает, он никогда не завершается, поэтому я нажал ctrl-C через примерно 10 секунд.
romeovs
1

loginИсточник код команды был опубликован Apple. Сайт macOS 10.13.3 Источник . Требуется только загрузка system_cmds-790.30.1. После загрузки проект может быть легко изменен для создания только loginкоманды. Модифицированный проект и loginкоманда были размещены в GitHub по адресу davidanderson61 / system_cmds-10.13.3 .

Идея здесь состоит в том, чтобы модифицировать ее loginдля записи отладочной информации в консоль. Это поможет определить, почему loginкоманда зависает. Модификации могут быть сделаны любым желающим. Я предполагал, что это был бы я.

Установите loginкоманду отладки .

  1. Выберите последнюю версию с веб-сайта davidanderson61 / system_cmds-10.13.3 / Releases .

  2. Загрузите loginкоманду отладки в вашу Downloadsпапку. В разделе «Активы» щелкните правой кнопкой мыши loginи выберите «Загрузить связанный файл как», затем выберите «Сохранить».

  3. Частично отключите защиту целостности системы (SIP). Команда приведена ниже. Перед вводом команды вам нужно загрузиться в MacOS Recover , затем в окно терминала.

    csrutil  enable  --without  fs
  4. Введите команду, указанную ниже, чтобы сохранить исходную loginкоманду. Если он login.orignalуже существует, вы можете пропустить этот шаг.

    sudo  mv  /usr/bin/login  /usr/bin/login.original
  5. Введите команды, приведенные ниже, чтобы скопировать команду отладки loginи установить соответствующие разрешения.

    sudo  cp  ~/Downloads/login  /usr/bin/login
    sudo  chmod  104555  /usr/bin/login
  6. Включить защиту целостности системы (SIP). Введите следующую команду. После этого вы должны перезагрузить.

    sudo  csrutil  clear

Настройте консольное приложение

Ниже приведены инструкции по настройке консольного приложения для отображения только сообщений от loginкоманды.

  1. Откройте консольное приложение.
  2. Добавьте PIDстолбец, как показано ниже.

    g2

  3. Введите loginв поле поиска.

    g3

    Пока поле поиска находится в фокусе, нажмите returnклавишу. Поле поиска должно измениться на то, что показано ниже.

    g8

  4. Измените Anyна Process, как показано ниже.

    g4

  5. Измените список Containsна Equals, как показано ниже.

    g5

  6. Выберите Saveкнопку. Когда появится запрос «Сохранить поиск как:», введите Login, затем выберите Save.

    g6

Результаты должны появиться, как показано ниже. В следующий раз, когда вы откроете консольное приложение, вам нужно будет только нажать кнопку «Войти».

g7

аппендикс

Как создавался репозиторий GitHub.

  1. Нажмите на system_cmds.xcodeprojфайл, открытый в Xcode.
  2. В строке меню выберите Source Control->Create Git Repositories....
  3. В строке меню выберите Product->Scheme->New Scheme.... Далее выберите в loginкачестве цели и имени.
  4. В строке меню выберите Project->Build.
  5. Выйти из Xcode.
  6. Войдите на GitHub и создайте новый репозиторий.
  7. В верхней части страницы быстрой настройки вашего репозитория GitHub щелкните, g1чтобы скопировать URL-адрес удаленного репозитория.
  8. Для окна приложения терминала введите следующую команду. Замените <remote repository URL>URL-адресом, скопированным на предыдущем шаге.

    git  remote  add  origin  <remote repository URL>
  9. Откройте проект в Xcode и в строке меню выберите Source Control->Push....

Как был создан первый релиз

  1. В окне приложения терминала введите следующие команды.

    git  tag  -a  v1.0  -m  "Original source code"
    git  push  origin  v1.0
  2. Скопируйте встроенную loginкоманду в вашу Downloadsпапку.

  3. Из вашей учетной записи GitHub создайте новый выпуск как v1.0. Присоединить ~/Downloads/loginкак бинарный файл.

Дэвид Андерсон
источник
1

У меня была эта проблема также при запуске sbt console в emacs. Всякий раз, когда я выходил из консоли sbt, просто убивая окно вместо того, чтобы сначала «красиво» выйти из консоли sbt, это вызывало зависание процесса Java даже после закрытия окна, и каким-то образом препятствовало созданию новых сеансов терминала. Я принудительно убил процесс Java из монитора активности, и фактически зависший терминал запускался как внутри emacs, так и в новой вкладке.

Теперь я просто убедительно завершил работу с помощью команды exitили ctrl-d(или ctrl-c ctrl-dв emacs term/multi-term), а затем убил окно.

jjinking
источник
0
  1. Проверьте, действительно ли ваш процесс зависает во время login
  2. Посмотрите на Activity Monitor и следите за root процессы (например, nano, emacs, vim), которые вы, возможно, инициировали и не завершили должным образом (сбой, просто уничтожил терминал и т. Д.), И которые все еще запущены.
  3. Убейте этот процесс (ы), и логин должен работать немедленно.
user5795782
источник
0

Просто мои два цента.

Я установил Terminus Package для Sublime Text, который позволяет мне запускать терминал в моем текстовом редакторе.

Закрытие Sublime Text немедленно позволило моему терминалу снова начать работать.

изобилие
источник
Я не думаю, что это помогает ответить на вопрос. Предотвращает ли это зависание терминала, запустив его внутри Terminus? Даже если это произойдет, похоже, вы решаете другую проблему здесь.
Айкам
Мой обычный терминал не будет работать из-за некоторых проблем с Sublime Text
Abundance
0

FWIW, у меня была такая же проблема. После перезагрузки проблема исчезнет, ​​но я хотел сэкономить время, которое нужно делать несколько раз в день. Это началось после использования определенной среды nodeJS, поэтому я вошел в монитор активности и заметил, что процесс узла продолжается. Убийство этого экземпляра решило проблему для меня, так что если кто-то, кто испытывал это, недавно начал работать с узлом или npm локально, это может быть вашей проблемой.

daniel.j.wood
источник
Был случайный процесс "Java" в моем случае, но его уничтожение в Activity Monitor остановило зависание терминала!
Адам Б.
0

Убийство случайного экземпляра nvim исправило это для меня. Я предполагаю, что это не относится к nvim, но что-то, что nvim делал в моем случае, вызывало проблемы. Я бы искал неиспользуемое потерянное приложение терминала в мониторе активности и убил бы его, если найдешь.

Райан Герстенкорн
источник