Como você evita que um processo seja reiniciado automaticamente? (especificamente, antivírus sophos)

13

Meu software VPN exige que o antivírus Sophos esteja instalado e em execução. No entanto, quando não estou na VPN, não quero que ela seja executada - quero que esteja morta.

No entanto, matar as tarefas é ineficaz:

ps -ax | grep -i soph
40972 ??         0:07.34 /Library/Sophos Anti-Virus/SophosAutoUpdate.app/Contents/MacOS/SophosAutoUpdate -d
41069 ??        28:08.48 /Library/Sophos Anti-Virus/InterCheck.app/Contents/MacOS/InterCheck -d
41078 ??         0:02.42 /Library/Sophos Anti-Virus/SophosAntiVirus.app/Contents/MacOS/SophosAntiVirus -d
$ sudo kill 40972 41069 41078 41084
$ ps -ax | grep -i soph
44344 ??         0:00.03 /Library/Sophos Anti-Virus/SophosAutoUpdate.app/Contents/MacOS/SophosAutoUpdate -d
44345 ??         0:00.02 /Library/Sophos Anti-Virus/SophosAntiVirus.app/Contents/MacOS/SophosAntiVirus -d
44347 ??         0:03.03 /Library/Sophos Anti-Virus/InterCheck.app/Contents/MacOS/InterCheck -d

Apenas reinicia automaticamente. O que preciso fazer para evitar isso?

Keflavich
fonte
É possível que haja uma preferência no software Sophos para desativá-lo?
Daviesgeek 17/09
Não tanto quanto eu posso dizer; se estiver lá, está escondido.
Keflavich

Respostas:

17

Isso significa que existe outro processo de monitor que o reinicia.

Você pode verificar quem é o processo pai: selecione o processo no monitor de atividades e use o botão Informações, ou via terminal, ps -ax -O ppidse bem me lembro.

  • Pode ser outro processo da Sophos, mas com um nome furtivo, ou talvez até seu software VPN. Nesse caso, você pode apenas killtodos eles.

  • A outra possibilidade é que o processo esteja sendo mantido vivo pelo daemon de inicialização launchd. Neste caso, você vai encontrar uma entrada (um arquivo XML plist) para o seu antivírus em ambos ~/Library/LaunchAgents, /Library/LaunchAgents(provável) ou /System/Library/LaunchAgents(I caro espero que não).

Se o segundo for o caso, você pode:

  • Edite o arquivo e altere o parâmetro KeepAlive, removendo ou alterando (você pode fazer coisas bacanas, consulte os documentos para obter mais informações).

  • Basta pedir ao launchd para fazer a parada para você. Infelizmente, você não pode simplesmente contar, launchtl stoppois o processo apenas reapareceria. Você terá que usar
    sudo launchctl unload /path/to/the/plist file

Agos
fonte
Obrigado Agos, esse é exatamente o conselho que eu estava procurando. No entanto, não consigo encontrar a coisa danada! Não há PIDs com números próximos ao (original, pré-morto) Sophos Anti-Virus que eu possa associar a ele. Nada apareceu nos diretórios LaunchAgents (embora tudo o que fiz foi uma simples verificação de regex em / System /). Existe algum arquivo de log no qual o launchd registre a reinicialização de um processo? Eu verifiquei system.log e outros sem sorte ...
keflavich
O arquivo para mim estava aqui /Library/LaunchDaemons/com.sophos.common.servicemanager.plist- você pode encontrar via mdfind -name Sophos. A remoção do parâmetro Keep Alive funcionou.
Dhruv Ghulati
Não funciona para processos em / System / Library / LaunchDaemons - OSX fornece um erro "Não foi possível encontrar o serviço especificado" #
30719 Adam Adam
7

Eu comentaria no post de Agos, mas sou muito novo para fazer isso. Assim:

Tanto quanto me lembro, eles deveriam ter um agente de lançamento /Library/LaunchAgents. Eu apenas pediria para você fazer um ls /Library/LaunchAgents, ls /Library/LaunchDaemonse ls /System/Library/LaunchDaemons. Algo vai aparecer.

Além disso, você pode abrir /Applicationse verificar a desinstalação do Sophos.app com o Show Package Contentscheck-out do script de desinstalação.

GhostLyrics
fonte
1
Graças fantasma. O diretório que Agos deixou de fora era / Library / LaunchDaemons, que possui o arquivo plist. Eu te dei um +1, mas há a resposta, já que ele conseguiu a maior parte. Eu aprecio muito a assistência!
Keflavich #
Certifique-se de executar holofotes para procurar Sophos arquivos deixados para trás após os 'desinstalar' mdfind -name Sophos
chiggsy
@chiggsy por que ele faria isso? Ele não deseja desinstalar o aplicativo, mas impedir que ele seja reiniciado toda vez que o mata.
GhostLyrics
É isso aí? É tudo o que ele quer?
chiggsy
4
man launchctl


launchctl list |grep -i 'sophos'

descarregar um daemon permanentemente, mas não desinstalá-lo

launchctl unload -w /full/path/to/file.plist
chiggsy
fonte
1
Este é o "melhor" resposta, porque ele também irá impedi-lo de carregamento sempre (w)
Dustin
sophos se esconde. Isso não funciona no sophos.
216 Ben Ben
1

Para descobrir qual launchdtrabalho está gerando as coisas de volta tail -f /var/log/system.loge sudo kill -9 <pid>o processo em que você está interessado.

De repente, launchdvocê dirá exatamente qual trabalho é responsável:

com.apple.launchd[1] (com.sophos.managementagent[83911]): Exited: Killed: 9

Você também pode tentar aumentar o nível de log para determinar com precisão o que está acontecendo: launchctl log level debug

Lembre-se de que alguns trabalhos serão executados como root, portanto, sudo launchctl listpodem mostrar alguns trabalhos extras em execução na sua máquina.

Jose Alban
fonte
0

Você também pode controlar quais Launch Agent e Daemons são executados e quando, com o útil aplicativo Lingon, disponível na Mac App Store e online.

JeffCGD
fonte