После установки Autodesk Smoke у меня все время работают два процесса httpd, и я бы хотел их остановить. Когда я использую sudo killall httpd
, они останавливаются и перезапускаются сразу. Монитор активности показывает, что запускается родительский процесс, но как определить, какой агент или демон запускает его, чтобы я мог его отключить?
launchctl list | grep httpd
показывает эти результаты:
302 - 0x7f94ea700dd0.anonymous.httpd
92 - org.apache.httpd
Я смотрю, /System/Library/LaunchDaemons/org.apache.httpd.plist
и это показывает следующее. Вы можете видеть, что он установлен на disabled
. Другой launchd
элемент со странным именем не отображается в поиске файловой системы, поэтому я понятия не имею, что это такое.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>org.apache.httpd</string>
<key>EnvironmentVariables</key>
<dict>
<key>XPC_SERVICES_UNAVAILABLE</key>
<string>1</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
</array>
<key>OnDemand</key>
<false/>
</dict>
</plist>
/usr/sbin/apachectl stop
но до сих пор не знаю, как отключить его после каждой перезагрузки.launchctl unload
(хотя я не знаю, нужно ли вам указывать путь к списку рассылки), (ii) Если он указан в ваших элементах логина используйте инструмент «Системные настройки» -> «Пользователи и группы» -> «Элементы входа» -> Удалить ошибочную запись, если она найдена.Ответы:
Вы можете получить вывод
launchctl list
для pid:Тогда, например , ищет файл с именем
com.example.foo.plist
в~/Library/LaunchAgents/
,/Library/LaunchAgents/
или/Library/LaunchDaemons/
.Редактировать: ключ Disabled может быть переопределен в
/var/db/launchd.db/com.apple.launchd/overrides.plist
, который изменяется приlaunchctl load -w
запуске от имени пользователя root, или в/var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
, который изменяется приlaunchctl load -w
запуске от имени пользователя.Если Apache plist, который поставляется с OS X, был включен, вы можете отключить его, запустив
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
.источник
sudo launchctl list
.launchctl list
только кажется, включает в себя задания, загруженные процессом запуска пользователя.Это дает вам список всех определений работы, ссылающихся на
httpd
.источник
Disabled
Ключ может быть переопределеныoverrides.plist
файлами в / ниже/var/db/launchd.db/
. Также отключенное задание может по-прежнему запускаться вручную (не автоматически во время процесса загрузки / входа в систему).grep -rn apache /private/var/db/launchd.db
и нашел только один результат. Это отключено. Мне нужно выяснить, как этот сервис запускается и как действительно отключить его.Поведение launchctl изменилось в том смысле, что если служба принудительно включена, она не будет изменять содержимое исходного .plist, а будет иметь отдельный каталог (который не следует изменять). Проверьте man-страницу для launchctl и опцию «-w» в команде «load». Таким образом, простое изучение файла не обязательно скажет вам, отключен он или нет. Очевидно, это не отключено :)
Попробуйте "запустить unct -w org.apache.httpd.plist". Если это работает для вас, вы все равно сможете запустить его по требованию с помощью "launchctl start org.apache.httpd.plist"
Если это не сработает, попробуйте "launchctl remove org.apache.httpd.plist", который не позволит вам запустить вручную.
источник
На основе значения метки (например
org.apache.httpd
) вы можете попытаться найти.plist
следующую команду:Чтобы узнать, с чего начался процесс, проверьте его родительские PID, например,
Или используйте
pstree
команду, указав PID вручную, напримеристочник