Mac OS X Terminal meldet sich nicht an


9

Ich verwende Mac OS X Version 10.6.3 und wenn ich das Terminal öffne (mit terminal.app oder iterm), hängt es nur beim Anmeldevorgang. Ich habe versucht, neu zu starten, den Startbefehl in / bin / bash zu ändern und die Terminaleinstellungsdatei zu löschen. Alles ohne Erfolg.

Antworten:


5

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


OK, ich habe keine Ahnung, was passiert ist, aber es funktioniert jetzt. Denkst du, ich sollte dies als gelöst markieren oder nicht?
Wuffers

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.
Chris Page

6

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.plistweg von ~/Library/Preferences/.

com.apple.Terminal.plist

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

Ändern der von Terminal verwendeten Shell

Einige Ratschläge zum Ändern der Standard-Shell im Terminal in /bin/zshund 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_profileDatei 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 :

Verschieben von Bash-Dateien mit Automator

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 .bashin meinem Home - Verzeichnis zu backupUnterverzeichnis.

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.plistzurück in ~/Library/Preferences/die aktuelle verschoben und beschlossen, alte (und etwas nicht allzu nützliche) .bash*Dateien und gelöschte backupVerzeichnisse 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.

Terminal funktioniert wieder


1
TFW Sie versuchen, ein dummes Terminalproblem zu lösen und die SO-Antwort, die Sie finden, ist von Dan Abramov, bevor er Dan Abramov war ...
BarthesSimpson

1

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.


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.