Proces zakończony natychmiast po otwarciu terminalu

12

Po otwarciu terminala w systemie OS X:

Last login: Tue Oct 28 10:29:21 on ttys000 login(14773,0x7fff7572f300) malloc: * error for
object 0x7fd4bb715110: pointer being freed was not allocated * set a breakpoint in
malloc_error_break to debug

[Process completed]

Nie mam pojęcia, co zrobiłem ani jak to naprawić.

użytkownik98034
źródło
Założę się, że coś jest nie tak w twoim .profile lub .bashrc, co powoduje ten błąd i sprawia, że ​​shell nie może się uruchomić.
Matthieu Riegler
.bashrc <- co to jest? Nie mogę google to lol ... Im nowy Mac;] Nie mam nawet folderu / etc
user98034
OS X i tak nie dostarcza źródła ~ / .bashrc, więc sprawdź ~ / .profile i inne takie pliki, aby zobaczyć, czy źródła ~ / .bashrc —cc @Matthieu
grg
i ~ / .bash_profile
user151019

Odpowiedzi:

8

Przejdź do Preferencje → Ogólne i ustaw Powłoki otwarte za pomocą polecenia, a następnie wprowadź:

/bin/bash -x

Otwórz nową powłokę i zobacz, co jest uruchomione, a następnie usuń odpowiednie linie z plików profilu.

grg
źródło
wciąż ten sam. W preferencjach (generalnie z dokowania) nie mogę włączyć „ogólnych”, „startować płytę” i „zauważać”;] chyba coś jest zepsute. OSX yosmite
user98034
Wiem. Ale nie mogę teraz otworzyć tych kart w ogólnych preferencjach, więc może być więcej zepsutych rzeczy.
user98034
@ użytkownik Ach, rozumiem co masz na myśli. Tak, to oznaczałoby, że coś innego jest nie tak - być może ponownie zainstalować OS X?
grg
czy jest jakiś prosty sposób, aby to zrobić? Mam Mac mini
user98034
@ user98034 Być może wszyscy przyjmują wiedzę, której nie masz. Pliki o nazwach rozpoczynających się od kropki, takie jak .profile itp., Są na ogół niewidoczne. Możesz wyświetlić listę nazw plików w Terminal.app, wpisując „ls -a”. Aby zobaczyć, co znajduje się w pliku, takim jak .profile, wpisz „cat .profile”. Następnie możesz otworzyć kolejne okno (powłokę) w Terminal.app. Możesz wpisywać polecenia jeden po drugim lub kopiować i wklejać z jednego okna do drugiego. Patrząc w nowym oknie, możesz zobaczyć efekt każdego polecenia osobno.
David Epstein
4
  1. Przejdź do ikony Terminal w Docku, naciśnij prawy przycisk myszy i naciśnij Nowe polecenie 2./bin/bash -x (pokazuje twój problem)
  2. sudo nano .bash_profile (otwórz to problematyczne miejsce)
  3. usuń to, Ctrl + X (wyjście) Tak, Enter
Po prostu idź
źródło
1
Twoja odpowiedź nie wydaje się dodawać niczego poza odpowiedzią grgarside.
John N
Robi: Nie mogę wprowadzić polecenia w ścieżkę, którą proponuje grg. Odpowiedź JustGo dała mi sposób na uruchomienie poleceń powłoki, aby rozwiązać problem. Nie mogłem nawet otworzyć plików kropek w edytorze tekstów: Apple „pomocnie” nie pokazuje ich w wyszukiwarce. Więc jeśli twoja powłoka kończy się tak szybko, jak ją otwierasz, jak ma to miejsce w przypadku tego problemu, jest to sposób
F1Linux
1

Wiem, że to jest stare ... ale miałem ten sam problem i nie mogłem znaleźć żadnych informacji, aby rozwiązać ten problem, więc postanowiłem również udostępnić rozwiązanie tutaj.

Mam nadzieję, że pomaga komuś innemu. :)

Po uaktualnieniu komputera Mac z OS X 10.6.8 (Snow Leopard) do 10.11.4 (El Capitan) nie będzie już otwierać powłoki w terminalu. Otworzy się okno terminala z wyświetlonym na ekranie tylko [Proces zakończony].

Dziennik konsoli pokazywał błędy:

login: in openpam_load_module(): no pam_serialnumber.so found
login: pam_start(): system error

Ten post ( https://discussions.apple.com/message/11861278#11861278 ) wskazał mi właściwy kierunek.

Sprawdziłem zawartość /private/etc/pam.d/login.term na dotkniętym Macu i działającym Macu.

Uszkodzony terminal Mac /private/etc/pam.d/login.term

# login: auth account password session
auth       optional       pam_krb5.so
auth       optional       pam_mount.so
auth       sufficient     pam_serialnumber.so serverinstall legacy
auth       required       pam_opendirectory.so
account    required       pam_nologin.so
account    required       pam_opendirectory.so
password   required       pam_deny.so
session    required       pam_uwtmp.so
session    optional       pam_mount.so

Działający terminal Mac /private/etc/pam.d/login.term

# login: account session
account    required       pam_nologin.so
account    required       pam_opendirectory.so
session    required       pam_uwtmp.so

Zmodyfikowałem zawartość komputera Mac z uszkodzonym terminalem, aby dopasować komputer Mac do działającego terminala, a terminal natychmiast zaczął działać poprawnie. 😃

bu11etpr00f
źródło
0

Może to być coś tak prostego, jak niektóre zablokowane uprawnienia. Podczas migracji maszyny do Yosemite miałem problemy z uruchomieniem powłoki, a problem zajął się naprawą uprawnień.

Spróbuj użyć funkcji „Napraw uprawnienia” na dysku startowym za pomocą narzędzia Disk Utility.app. Mam nadzieję, że w trakcie działania w oknie dziennika pojawi się seria plików z niepoprawnymi uprawnieniami. Jeśli masz więcej niż jeden lub dwa pliki ze złymi uprawnieniami, płucz i powtarzaj, aż uzyskasz czysty dziennik.

Uwaga: od czasu do czasu pojawią się pliki, które uruchamiają narzędzie do naprawy (w tej chwili nie można przywołać szczegółów), ale na nowym komputerze Mac mini powinieneś być w stanie wykonać czysto po drugiej lub trzeciej próbie.

Dustin Wheeler
źródło
0

Żadne inne rozwiązanie nie działało dla mnie. Wygląda na to, że mój terminal wypluł proces zakończony, ponieważ brakowało mi miejsca na dysku. Usuwanie plików nie pomogło. Musiałem usunąć moje migawki lokalne wehikułu czasu.

Steve Moser
źródło
-1

Dla mnie to rozwiązało:

  1. Przejdź do: Terminal> Preferencje
  2. Przewiń w dół do: Shell
  3. Zmień /bin/bashna:/bin/sh
vamc
źródło
-1
  1. Przejdź do ikony Terminal w Docku, kliknij prawym przyciskiem myszy i naciśnij Nowe polecenie
  2. /bin/bash -x i ponownie otwórz Terminal (pokazuje twój problem)
  3. Przejdź do Preferencje → Ogólne i ustaw Powłoki otwarte za pomocą polecenia, a następnie wprowadź: /bin/sh
  4. Zamknij okno Preferencje terminala
  5. Otwórz terminal ponownie (powinien działać)
  6. vi /Users/<your_user>/.bash_profile, usuń wiersze znalezione w kroku 2.
  7. Przejdź do Preferencje → Ogólne i ustaw Powłoki otwarte za pomocą polecenia, a następnie wprowadź: /bin/bash
  8. Otwórz terminal, powinien już działać
Fanny De Siansoba
źródło