Kiedy uruchamiam Zotero / Firefox, często ulegają awariom i mam proces zombie; po tym nie mogę otworzyć nowych instancji Zotero lub Firefox. Chcę raczej pozbyć się tych procesów zombie niż restartować, więc dla <pid>
procesu zombie,
$ ps -p <pid> -o ppid=
daje mi <parent_pid>
i
ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'
mówi mi, że proces nadrzędny jest /sbin/launchd
dla użytkownika crippledlambda
.
Czy istnieje sposób na ponowne uruchomienie bez zabijania mojego systemu?
sudo kill -1 <parent_pid>
nic nie robi. Próbowałem napisać to w skrypcie i uruchomić za pomocą sudo
:
for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done
i to oczywiście (?) pozostawia mi nieaktywny szary ekran, więc i tak muszę zrestartować komputer. Z góry dziękuję za sugestie.
launchd
zawsze powinien natychmiast odczytać status wyjścia swoich dzieci. Jeśli to nie są naprawdę zombie, powinieneś je zabijać. W obu przypadkach zabijanielaunchd
spowoduje więcej problemów niż rozwiązuje.Odpowiedzi:
Właściwym sposobem na zatrzymanie i uruchomienie demonów uruchomieniowych jest launchctl unload .
Na przykład:
Można zatrzymać usługę uruchomienie demona za pomocą wyładowania komendy z launchctl .
Aby uruchomić wyłączonego lub zatrzymanego demona uruchamiania:
★ Zachowaj ostrożność przy przypadkowym wyłączaniu demonów uruchamiania - zwłaszcza oficjalnych Apple; może potencjalnie uniemożliwić uruchomienie systemu do momentu uruchomienia go w trybie awaryjnym i ręcznego ponownego włączenia. Nie zabijasz Launctl jak normalny proces, ponieważ może on potencjalnie zabić twój system, tak jak doświadczyłeś.
> więcej informacji na temat launchctl tutaj . (Strona manuala Apple launchctl)
źródło
com.apple.bsd.launchdadd.plist
? Nie widzęlaunchd
dokładnie. I dzięki za ostrzeżenie ...scrun simctl spawn <sim_id> sudo launchctl unload …
. Pliki z listą plist są poniżej$(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/LaunchDaemons/
Ze strony podręcznika uruchomionego:
Dlatego nawet jeśli mógłbyś go zatrzymać, nie byłbyś w stanie go uruchomić, więc odpowiedź jest taka, że nie ma mowy.
źródło