Термінальний логін висить


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, я зміг отримати оболонку, встановивши команду start на /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елемент відображається в моніторі діяльності. (Примус) Вихід із нього також закриває вікно терміналу, яке висіло. Закривання вікна вручну не змушує loginпроцес відмовитися від Монітора активності.

  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:

Моє оточення зазвичай виглядає так:

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

1
Це може бути кульгавою пропозицією, але ви намагалися зв’язатися із службою підтримки Apple? Ваше запитання привертає не так багато уваги, як ви його опублікували, і їхній персонал, можливо, чув про цю проблему. Моя інша пропозиція - перевстановити MacOS. Однак, оскільки ваш Mac настільки новий, я не знаю, чи спрацювало б це.
НойЛ

@klanomath зроблено!
ромеови

Щоб зрозуміти, що робить логін, виберіть його в Моніторі діяльності та оберіть Зразок процесу. Те саме стосується інших процесів, які вивішені. Однак цей рівень налагодження може бути невідповідним для Q&A StackExchange. Можливо, краще подати звіт про помилку в Apple, включаючи зразок файлу, або знайти когось, хто може запропонувати підтримку для діагностики проблеми на цьому рівні. Дивіться developer.apple.com/bug-reporting
Chris Page

Як довго він висить? Ви намагалися залишити його працювати протягом десяти хвилин? Чи ваша машина пов'язана з мережею Open Directory? Зокрема, вхід повинен отримати вашу інформацію про користувача, і якщо ви знаходитесь в мережі OD з сервером каталогів, що зайнятий / не відповідає, це може зайняти пару хвилин; інші програми також отримують інформацію про користувачів і можуть постраждати від цієї проблеми.
Chris Page

Не намагався чекати більше, спробую наступного разу. Я не пов'язаний з мережею Open Directory, ці помилки трапляються і тоді, коли я не в будь-якій мережі.
Rromeovs

Відповіді:


13

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

1. Переконайтесь, що він висить під час входу

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

Щоб підтвердити це, наступного разу, коли виникне ця проблема, запустіть Монітор активності, щоб перевірити, чи працює оболонка, чи ви бачите лише процес входу .

Після того, як у вас з’явилася можливість це зробити, повідомте про те, що знайшли.

ПРИМІТКА: - Якщо у вас відкриті інші термінали, переконайтеся, що ви перевіряєте відповідний процес. Я здогадуюсь, що висячий процес - це той, який має найвищий номер ідентифікатора процесу (PID).

2. Що таке назва терміналу?

Наступного разу, коли у вас виникне це питання, ви можете взяти до відома, що таке назва вікна терміналу, і повідомити про це?

3. Вбийте судо

Ви заявляєте, що перезавантаження MBP завжди вирішує цю проблему.

Однак наступного разу, коли у вас виникне ця проблема (можливо, після того, як я зробив те, що я описав у 1 вище), я хотів би, щоб ви спробували вбити судо від 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. це з картини. Я повернусь із відповіддю на інші запитання, як тільки я їх отримаю.
ромеови

Додано оновлення з відповідями на ці запитання. loginЗдається, винуватець, але він все ще не пояснює, чому це працює в iTerm з bash.
Ромеови

Я оновив свою відповідь. Однак я щойно зрозумів, що ви не вказали, скільки часу ви намагалися чекати завершення входу в термінал? Було б добре знати, чи він врешті-решт увійде в систему, чи просто він висить на невизначений термін.
Мономет

@romeovs Цікаво, ти коли-небудь вирішував це питання?
Мономет

nope :( все ще працюю над цим. Хоча це почалося набагато менше.
romeovs

6

Це здається ідеально підходящим для вас, що перевищує максимальний процес на користувача (або, можливо, максимум процесів).

При встановленні на складі macOS ви отримуєте 709 ulimit -uпроцесів на користувача ( ) та 1064 макс. Процесів ( sysctl -a | grep maxp)

Найпростіший спосіб підбити це - встановити Server.app з App Store та перезавантажити. Ви також можете встановити режим продуктивності для більш високих меж.

Оскільки ви не описували налаштування (версію ОС та версію ОС), ось кілька порад. Не забудьте перевірити наявність SIP, що обмежує вашу здатність змінювати файли, якщо ви прочитали деякі старі статті про зміну лімітів, не вдаючись до встановлення сервера. додаток:


Відмінна точка! Я навіть цього не думав. :)
Мономет

@Monomeeth ваша відповідь приголомшлива. Багато чудових речей у ньому.
bmike

@bmike Чи є спосіб я перевірити загальну кількість процесів, щоб перевірити, чи це так? Можливо, я навіть можу це відтворити, створивши тоді 709 процесів?
ромеови

5

Я також бачу це вже кілька місяців. Надзвичайно засмучує. Єдине, що виправляє це перезавантаження.

  • Середині 2015 року MBP (без сенсорної панелі)
  • Бета-версія MacOS 10.12.6

Іноді зависання входу трапляються після взаємодії з tmux.

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

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

29.08.2017 Оновлення:

Проблема все ще виникає. Іноді, коли машина стає в поганому стані, у мене є відкриті термінальні вікна, які вже успішно ввійшли в систему, які я можу використовувати для налагодження.

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


Будь-яка удача розібратися в цьому?
ромеови

Проблема вирішена для мене з моменту оновлення ОС. Це було виправлено для кількох другорядних версій, і я зараз працюю 10.13.3 (17D47).
Зак

Я також працює 10.13.3 (17D47)! Це стало рідше, але все ж виникає іноді.
ромеови

4

Важливо лікувати справжню проблему, а не лише симптом. Тож спробуйте наступні пропозиції та оновіть так на основі, що також може запропонувати подальші засоби усунення.

  1. Який користувач належить терміналу? :
    Перший мій погляд - це може бути пов'язано з налаштуванням вашого облікового запису. Якщо термінал намагається отримати доступ до ресурсів або каталогів, до яких може користуватися лише користувач адміністратора (якщо ваш обліковий запис не є адміністратором), це може призвести до стану заморожування - не дозволяючи вам отримати доступ до терміналу. Тому продовжуйте і переконайтесь, що коли ви починаєте термінальний сеанс, він буде локальним для вашого користувача, а не іншого користувача. Те, що ви не можете створити процес судо, вказує мені на цей напрямок.

  2. Введіть Control-Z або Command-Z:
    Ця послідовність керуючої клавіші призупиняє запущену програму і надає вам підказку оболонки. Тепер ви можете ввести команду завдання, щоб знайти ім'я програми, а потім перезапустити програму з 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

Допоможе дізнатися наступне, якщо це вже не було зазначено:

  • Як ви ініціюєте термінальний сеанс? Це через прожектор або значок на робочому столі чи іншим способом?

  • Що робить термінал, коли він висить? Це в середині виконання команди (одна і та ж команда кожного разу, перш ніж вона висить), або вона просто зависає з моменту запуску термінального сеансу / windows.

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


І Ctrl-Z, і Ctrl-C просто відображаються на екрані як, ^Zі ^CCtrl-Q нічого не робить. Я зазвичай відкриваю оболонку за допомогою Command-N у терміналі. Я штатний програміст, тому в основному використовую термінал. Термінал висить перед тим, як щось буде виконано (увімкнено login).
Ромеов

@romeovs Що з Pointer 1 про тип вашого користувача? Скріншот із проблемою також допоможе. Дякую
pal4life

Я користувач та адміністратор за замовчуванням у своєму macbook.
Ромеови

4

Я б спробував зробити відключення SIP та dtrace login, щоб знайти першопричину (Щоб вимкнути та повторно включити SIP, див. Http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac -ос-х / )

$ 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

введіть "вихід", натисніть клавішу Enter

і, нарешті, завантажте dtruss_login.txt, наприклад, https://gist.github.com/

Ви можете скопіювати вміст файлу у буфер обміну таким чином

cat dtruss_login.txt | pbcopy

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

Другим цілим числом у кожному рядку є час, який пройшов виклик.

Звичайно, було б чудово, якби ти міг це запустити, коли логін висить, але якщо я тебе зрозумію, це неможливо .... можливо, ти чи хтось інший має уявлення про те, як "dtruss login", коли термінал висить ?


Ой. Це здається сильним болем за те, що трапляється через години чи дні після початку входу. Чи можете ви звузити, що dtrussможе захопити та показати?
bmike

Якщо логін висить у системному дзвінку, що цілком ймовірно, воно вам покаже. Якщо він зависне між системними дзвінками, він покаже, між якими, і підкаже, що відбувається насправді. наприклад, якщо він зависає після зчитування певного файлу конфігурації системним викликом, помилка, швидше за все, виникає під час розбору цієї конфігурації. Тоді вам потрібно уважно придивитись до цього. Може також бути пов’язано з мережею ... хто знає, поки ви не налагодите його;)
user2707001

Проблема в тому, що я не можу вручну відтворити проблему, поки не пізно.
ромеови

Потім виконайте команду в циклі "навіки" і зробіть ">> dtruss_login.txt 2> & 1" замість "2> dtruss_login.txt". Як тільки помилка з'явиться, ви побачите в кінці виводу.
user2707001

Нарешті я зміг отримати журнал dtruss: gist.github.com/romeovs/6661ae0db77e57281b531676cc5dc007 Оскільки логін висить, він ніколи не виходить, тому я ctrl-C'ed приблизно через 10 с.
ромеови

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 / release .

  2. Завантажте loginкоманду налагодження у свою Downloadsпапку. У розділі "Активи" клацніть правою кнопкою миші loginта виберіть "Завантажити пов'язаний файл як", а потім виберіть "Зберегти".

  3. Частково відключіть захист цілісності системи (SIP). Команда наведена нижче. Перш ніж ввести команду, вам потрібно буде завантажитися до відновлення macOS , а потім до вікна Terminal.

    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

Налаштуйте додаток консолі

Нижче наведено етапи налаштування програми Console для показу лише повідомлень з loginкоманди.

  1. Відкрийте додаток Console.
  2. Додайте PIDстовпчик, як показано нижче.

    g2

  3. Введіть loginу поле пошуку.

    g3

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

    g8

  4. Змініть Anyна Process, як показано нижче.

    g4

  5. Список Змінити Containsна Equals, як показано нижче.

    g5

  6. Виберіть Saveкнопку. Коли з'явиться запит на "Зберегти пошук як:", введіть Login, а потім виберіть Save.

    g6

Результати повинні відображатися, як показано нижче. Наступного разу, коли ви відкриєте додаток Console, вам доведеться лише вибрати кнопку "Увійти".

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. Для вікна програми Terminal введіть наступну команду. Замініть <remote repository URL>URL, скопійований на попередньому кроці.

    git  remote  add  origin  <remote repository URL>
  9. Відкрийте проект у Xcode та на панелі меню виберіть Source Control->Push....

Як було створено перший випуск

  1. У вікні програми Terminal введіть наступні команди.

    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 в emacs. Щоразу, коли я виходив із консолі sbt, просто вбиваючи вікно замість того, щоб вийти з консолі sbt спочатку "добре", це спричинило зависання процесу java навіть після закриття вікна, і якимось чином заважало створювати нові семінари терміналу. Я примусив знищити процес Java з монітора активності, і висячий термінал фактично почався, як зсередини emacs, так і з нової вкладки.

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


0
  1. Перевірте, чи справді процес висить login
  2. Погляньте на Монітор активності та стежте за rootпроцесами (наприклад, nano, emacs, vim), які, можливо, ви ініціювали та не виходили належним чином (аварія, щойно загинув термінал тощо) та які все ще працюють.
  3. Вбийте цей процес і вхід повинен працювати негайно.

0

Всього два мої центи.

Я встановив пакет Terminus для піднесеного тексту, який дозволяє мені запускати термінал в моєму текстовому редакторі.

Закриття піднесеного тексту негайно дозволило моєму терміналу знову почати працювати.


Я не думаю, що це допомагає відповісти на питання. Чи запобігає це зависання терміналу, запустивши його всередину Terminus? Навіть якщо це так, то, здається, ви вирішуєте ще одну проблему.
хайкам

Мій звичайний термінал не працюватиме через деякі проблеми з Sublime Text
достаток

0

FWIW, у мене була така ж проблема. Це вирішиться після перезавантаження, але я хотів заощадити час на це кілька разів на день. Він розпочався після використання конкретного середовища nodeJS, тому я зайшов у монітор активності та помітив, що триває процес вузла. Вбивство цього екземпляра вирішило проблему для мене, тому якщо хтось із цим відчував нещодавно почав працювати з вузлом або npm локально, це може бути вашою проблемою.


У моєму випадку був бродячий процес "java", але вбивство його у "Моніторі діяльності" припинило вивішування терміналу!
Адам Б

0

Вбивство бродячого екземпляра nvim виправило це для мене. Я припускаю, що це не характерно для nvim, але щось nvim у моєму випадку робило проблеми. Я б шукав непридатну програму-осиротілий термінал у моніторі діяльності, і вбив би це, якщо знайдеш його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.