launchtl: alguma maneira de desativar um daemon após remover o arquivo plist?

13

Eu estava tentando desativar permanentemente um daemon de terceiros, então excluí o arquivo plist de / Library / LaunchDaemons-- e então percebi que não havia feito launchctl unloadisso primeiro; tentar após o fato produz "Não existe esse arquivo ou diretório / nada encontrado para descarregar". E, claro, o daemon é reinicializável; portanto, quando eu o mato, ele é recriado.

Tentei fazer isso launchctl listna esperança de conseguir um rótulo para usar, launchctl removemas o daemon não está mais listado.

Com exceção da reinicialização, existe alguma maneira de fazer com que o launchd esqueça o daemon e / ou verifique novamente os arquivos de configuração?

jhfrontz
fonte
A documentação não é clara, mas launchctl kill com.example.productparece funcionar.
Abhi Beckert

Respostas:

18

Para ver TODOS os daemons em execução no momento, você precisa digitar:

sudo launchctl list

E então você pode removê-lo, por exemplo:

sudo launchctl remove com.sassafras.KeyAccess.daemon
Dan
fonte
Acho que, se você não é root, ele mostra apenas os daemons lançados para / como usuário?
jhfrontz
2
Isso realmente não funciona para mim. As entradas retornam na reinicialização.
Dmitry Minkovsky
3
@dimadima você removeu os arquivos associados do plist? Os comandos fornecidos por Dan manipulam apenas o estado atual (que é redefinido no próximo momento de inicialização para o que estiver em / Library / LaunchDaemons).
jhfrontz
@ jhfrontz yup Eu aprendi até agora que você tem que fazer isso. Obrigado.
Dmitry Minkovsky
1
Se isso ajuda alguém, realmente sempre existem várias listas exclusivas disponíveis. Todos os usuários no diretório têm seus próprios, embora o usuário root e o usuário conectado sejam provavelmente os mais relevantes. Você pode ver todos os usuários que possuem processos sudo ps auxou, no entanto, prefere usá-los sudo launchctl asuser [UniqueID] launchctl listpara ver a lista de cada usuário.
David Smith