Как предотвратить автоматический перезапуск процесса? (в частности, антивирус Sophos)

13

Программное обеспечение VPN требует от меня установки и запуска антивируса Sophos. Однако, когда я НЕ на VPN, я не хочу, чтобы он вообще работал - я хочу, чтобы он был мертвым.

Тем не менее, убийство задач неэффективно:

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

Это просто автоматически перезапускается. Что мне нужно сделать, чтобы предотвратить это?

keflavich
источник
Возможно, в программном обеспечении Sophos есть предпочтение отключить его?
Дэвисгек
Не так далеко, как я могу сказать; если это там, это скрыто.
Кефлавич

Ответы:

17

Это означает, что существует другой процесс мониторинга, который перезапускает его.

Вы можете проверить, кто является родительским процессом: выберите процесс в мониторе активности и используйте кнопку «Информация» или через терминал, ps -ax -O ppidесли я правильно помню.

  • Это может быть другой процесс от Sophos, но со скрытым именем, или, может быть, даже с вашим программным обеспечением VPN. В этом случае вы можете просто killих всех.

  • Другая возможность состоит в том, что процесс поддерживается демоном запуска launchd. В этом случае вы найдете запись (а PLIST XML - файл) для вашего антивируса в любом ~/Library/LaunchAgents, /Library/LaunchAgents(вероятно) или /System/Library/LaunchAgents(я надеюсь , что дорого нет).

Если второй случай, вы можете:

  • Отредактируйте файл и измените параметр KeepAlive, удалив или изменив его (вы можете сделать отличные вещи, подробнее см. В документации ).

  • Просто попросите launchd сделать остановку для вас. К сожалению, вы не можете просто сказать, launchtl stopтак как процесс просто возродится. Вам придется использовать
    sudo launchctl unload /path/to/the/plist file

Акос
источник
Спасибо Агос, это именно тот совет, который я искал. Тем не менее, я не могу найти проклятую вещь! Рядом с (оригинальным, предварительно убитым) антивирусом Sophos нет идентификаторов PID с номерами, которые я могу связать с ним. Ничего не появилось в каталогах LaunchAgents (хотя все, что я делал, было простой проверкой регулярных выражений в / System /). Есть ли файл журнала, в котором launchd будет записывать перезапуск процесса? Я проверил system.log и других без везения ...
keflavich
Файл для меня был здесь /Library/LaunchDaemons/com.sophos.common.servicemanager.plist- вы можете найти через mdfind -name Sophos. Удаление параметра Keep Alive сработало.
Дхрув Гулати
Не работает для процессов в / System / Library / LaunchDaemons - OSX выдает ошибку «Не удалось найти указанную службу»
Адам
7

Я бы прокомментировал сообщение Агоса, но я слишком нов, чтобы сделать это. Так:

Насколько я помню, у них должен быть агент запуска /Library/LaunchAgents. Я бы просто попросил вас сделать ls /Library/LaunchAgents, ls /Library/LaunchDaemonsи ls /System/Library/LaunchDaemons. Что - то будет отображаться.

Также вы можете открыть /Applicationsи проверить удаление Sophos.app, а Show Package Contentsзатем проверить сценарий удаления.

GhostLyrics
источник
1
Спасибо, Призрак. Директория, которую Agos оставил, была / Library / LaunchDaemons, в которой есть файл plist. Я дал тебе +1, но Агос ответил, так как он получил большую часть. Я очень ценю помощь!
Кефлавич
Убедитесь, что вы используете spotlight для поиска файлов Sophos, оставленных после «удаления». Mdfind -name Sophos
chiggsy
@chiggsy зачем ему это делать? Он не хочет удалять приложение, но предотвращает его перезапуск каждый раз, когда убивает его.
GhostLyrics
Это оно? Это все, что он хочет?
Чиггси
4
man launchctl


launchctl list |grep -i 'sophos'

постоянно выгружать демон, но не удалять его

launchctl unload -w /full/path/to/file.plist
chiggsy
источник
1
Это «лучший» ответ, потому что он также предотвратит его загрузку (-w)
Дастин
Sophos прячется. Это не работает на Sophos.
Бен
1

Чтобы узнать, какая launchdработа порождает вещи, tail -f /var/log/system.logи sudo kill -9 <pid>процесс, который вас интересует.

Вдруг launchdвам точно скажут, за какую работу отвечает:

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

Вы также можете попробовать увеличить уровень журнала, чтобы точно определить, что происходит: launchctl log level debug

Имейте в виду, что некоторые задания будут выполняться как root, поэтому sudo launchctl listмогут показать некоторые дополнительные задания, запущенные на вашем компьютере.

Хосе Албан
источник
0

Вы также можете контролировать, какой Launch Agent и Daemons запускаются, а когда - с помощью полезного приложения Lingon, доступного в магазине приложений Mac и в Интернете.

JeffCGD
источник