Antworten:
Es ist möglich, dass Sie einen Fehler in Ihrer .bashrc-Datei haben ... Sie können entweder versuchen, Echo-Anweisungen in Ihre .bashrc-Datei zu stecken oder sie zu entfernen, oder tcsh anstelle von bash versuchen, um festzustellen, ob dies das Problem ist ...
Ich hatte ein ähnliches Problem.
In meinem Fall würde das Terminal stehen bleiben und im Titel "Terminal - Login - 80x24" sagen .
Ich wollte Terminal nicht von der OS X-Festplatte neu installieren und habe daher verschiedene Verfahren befolgt, und am Ende schien eines davon funktioniert zu haben. Ich bin mir nicht sicher, was am wichtigsten ist, aber ich habe beschlossen, meine genauen Schritte mitzuteilen, falls jemand sie hilfreich findet:
1. Gehen Sie com.apple.Terminal.plist
weg von ~/Library/Preferences/
.
Einige berichten, dass die Terminal-Konfigurationsdatei möglicherweise durcheinander geraten ist und den Start der App verhindert.
Verschieben Sie diese Datei zur Sicherung an einen Ort, beenden Sie das Terminal und starten Sie es erneut.
In meinem Fall wurden beim Zurücksetzen der Konfiguration die Einstellungen für Schriftart und Farbe auf die Standardeinstellungen geändert, das Problem blieb jedoch bestehen. Wenn ja, fahren Sie mit Schritt 2 fort:
2. Versuchen Sie, eine andere Shell als bash auszuführen
Einige Ratschläge zum Ändern der Standard-Shell im Terminal in /bin/zsh
und zum Neustarten des Terminals , um festzustellen , ob das Problem spezifisch für Bash ist. In meinem Fall hat dies nichts geändert, und das Terminal würde immer noch hängen bleiben login
.
3. Versuchen Sie, .bash*
Dateien aus dem Ausgangsverzeichnis zu verschieben
Ich erinnerte mich, dass ich in der vorherigen Sitzung eine .bash_profile
Datei in meinem Verzeichnis erstellt hatte. Vielleicht stimmt etwas wirklich nicht. Wenn Sie noch keinen erstellt haben, könnte ein Installationsprogramm ihn erstellt (oder bearbeitet) haben, insbesondere wenn die Software nicht spezifisch für Mac OS ist.
Leider zeigt Finder standardmäßig keine versteckten Dateien an und bietet keine einfache Möglichkeit, dies zu tun. In meinem Fall stellte ich jedoch fest, dass Automator Bash-Befehle tatsächlich erfolgreich ausführen konnte :
Dies ist das Skript, das ich verwendet habe:
cd ~
mkdir backup
for F in .bash*
do
mv $F backup
done
Es bewegte alle Dateien , beginnend mit .bash
in meinem Home - Verzeichnis zu backup
Unterverzeichnis.
4. Starten Sie neu
Das Neustarten der App hat zu diesem Zeitpunkt bei mir nicht funktioniert, aber ich habe beschlossen, auch einen Neustart zu versuchen .
Nach dem Neustart funktionierte Terminal. Voilà!
Ich habe die gespeicherte Datei com.apple.Terminal.plist
zurück in ~/Library/Preferences/
die aktuelle verschoben und beschlossen, alte (und etwas nicht allzu nützliche) .bash*
Dateien und gelöschte backup
Verzeichnisse nicht wiederherzustellen .
Ich weiß nicht, ob es ein Zufall oder eine Kombination bestimmter Schritte war, die das Problem gelöst haben, aber ich bin froh, dass das Terminal wieder funktioniert, und ich hoffe, dass auch Sie dies tun werden.
Wenn der aktuelle Prozess wirklich "Anmelden" ist, bedeutet dies normalerweise, dass die Anmeldung darauf wartet, eine Anmeldesitzung zu erstellen, und noch nicht einmal versucht hat, die Shell zu starten. Um dies zu überprüfen, überprüfen Sie im Aktivitätsmonitor, ob die Shell ausgeführt wird oder ob nur ein Anmeldevorgang angezeigt wird. Beachten Sie, dass bei geöffneten anderen Terminals möglicherweise andere "Anmelde-" und Shell-Prozesse für diese Terminals angezeigt werden. Achten Sie daher darauf, welche Prozesse Sie untersuchen. Der Fehlerprozess ist normalerweise der neueste mit der höchsten Prozess-ID-Nummer (PID).
Mir ist klar, dass Mark Szymanski sagte, dass ein Neustart in seinem Fall nicht geholfen hat, aber ich dachte, ich sollte dies trotzdem erwähnen: Wenn es wirklich im "Login" steckt, ist die häufigste Ursache, dass Sie "sudo" ausgeführt und dann das Terminal geschlossen haben während es darauf wartete, dass Sie Ihr Passwort eingeben. Wenn Sie dies tun, wartet sudo für immer auf das Passwort und blockiert alle Anmeldungen, bis Sie den sudo-Prozess beenden. Der einfachste Weg, um das Problem zu beheben, ist ein Neustart. Alternativ können Sie sudo über den Aktivitätsmonitor (oder über ein anderes Terminal, falls bereits eines geöffnet ist) beenden. Ab Mac OS X Lion 10.7 bemerkt sudo, wenn das Terminal nicht mehr funktioniert und nicht mehr auf das Kennwort wartet, sodass dieses Problem nicht mehr auftreten sollte.
Eine weitere Ursache für Anmeldeverzögerungen ist, wenn Sie mit einem Open Directory-Netzwerk verbunden sind und der Verzeichnisserver träge ist oder nicht reagiert. Melden Sie dies Ihrem Netzwerkadministrator. Dies führt normalerweise nur zu Verzögerungen von einigen Sekunden, in einigen Fällen können sie jedoch bis zu mehreren Minuten dauern.
Das Problem ist nicht die Shell oder das Netzwerk. Entfernen Sie die * .asl-Dateien:
sudo rm -rf /private/var/log/asl/*.asl
Es braucht Zeit, weil es eine neue Shell startet. Aber danach funktioniert es wieder gut.