Como reiniciar o launchd OS X sem reiniciar?

12

Quando eu executo o Zotero / Firefox, eles geralmente falham e eu fico com processos zumbis; depois disso, não consigo abrir novas instâncias do Zotero ou do Firefox. Eu quero me livrar desses processos zumbis ao invés de reiniciar, então por <pid> do processo zumbi,

$ ps -p <pid> -o ppid=

me dá o <parent_pid> e

ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'

me informa que o processo pai é /sbin/launchd para o usuário crippledlambda .

Existe uma maneira de reiniciar isso sem matar meu sistema?

sudo kill -1 <parent_pid>

não faz nada. Eu tentei escrever isso em um script e executá-lo com 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

e isso obviamente (?) me deixa com uma tela cinza que não responde, então tenho que reinicializar de qualquer maneira. Agradecemos antecipadamente por suas sugestões.

    
por hatmatrix 20.04.2013 / 20:30

2 respostas

15

A maneira correta de parar e iniciar os daemons de lançamento é launchctl unload .

Por exemplo:

Você pode interromper um serviço de daemon de inicialização usando o subcomando descarregar de launchctl .

$ sudo launchctl unload /System/Library/LaunchDaemons/<daemon name>.plist

Para iniciar um daemon de ativação desativado ou interrompido:

$ sudo launchctl load /System/Library/LaunchDaemons/<daemon name>.plist

★ Tenha cuidado ao desativar os daemons de lançamento a esmo - especialmente os da Apple oficiais; Ele pode potencialmente tornar seu sistema não inicializável até que você inicie no modo de segurança e reative-os manualmente. Você não mata um launchctl como um processo normal porque ele pode potencialmente matar seu sistema como você experimentou.

> mais informações sobre o launchctl aqui . (Página man do launchctl da Apple)

    
por 22.04.2013 / 04:20
1

Na página de manual do launchd:

You cannot invoke launchd directly.

Por isso, mesmo se você pudesse pará-lo, você não seria capaz de iniciá-lo, então a resposta é que não há como.

    
por 01.05.2017 / 11:08