Después de instalar Autodesk Smoke, tengo dos procesos httpd ejecutándose todo el tiempo y me gustaría detenerlos. Cuando uso sudo killall httpd
, se detienen y se reinician de inmediato. El Monitor de actividad muestra que el proceso principal se inicia, pero ¿cómo puedo determinar qué agente o demonio lo está iniciando para poder desactivarlo?
launchctl list | grep httpd
muestra estos resultados:
302 - 0x7f94ea700dd0.anonymous.httpd
92 - org.apache.httpd
Miro /System/Library/LaunchDaemons/org.apache.httpd.plist
y muestra lo siguiente. Puedes ver que está configurado en disabled
. El otro launchd
elemento con un nombre extraño no aparece en una búsqueda del sistema de archivos, por lo que no tengo idea de qué es.
<?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
pero aún no sé cómo deshabilitarlo después de cada reinicio.launchctl unload
(aunque no sé si esto necesita que especifique la ruta al plist), (ii) Si está en sus elementos de inicio de sesión , use la herramienta Preferencias del sistema -> "Usuarios y grupos" -> "Elementos de inicio de sesión" -> Eliminar la entrada ofensiva si la encuentra.Respuestas:
Puede grep la salida de
launchctl list
para el pid:Entonces, por ejemplo, buscar un archivo con el nombre
com.example.foo.plist
de~/Library/LaunchAgents/
,/Library/LaunchAgents/
o/Library/LaunchDaemons/
.Editar: la clave Desactivada se puede anular en
/var/db/launchd.db/com.apple.launchd/overrides.plist
, que se modifica cuandolaunchctl load -w
se ejecuta como root, o en/var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist
, que se modifica cuandolaunchctl load -w
se ejecuta como usuario.Si la lista Apache que viene con OS X estaba habilitada, puede deshabilitarla ejecutando
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
.fuente
sudo launchctl list
.launchctl list
solo parece incluir trabajos cargados por el proceso de inicio del usuario.Esto le proporciona una lista de todas las definiciones de trabajo a las que se hace referencia
httpd
.fuente
Disabled
clave puede ser anulada por losoverrides.plist
archivos en / debajo/var/db/launchd.db/
. Además, un trabajo deshabilitado aún puede iniciarse manualmente (no automáticamente durante el proceso de inicio / inicio de sesión).grep -rn apache /private/var/db/launchd.db
y encontré solo un resultado. Está deshabilitado Necesito averiguar cómo se inicia este servicio y cómo deshabilitarlo realmente.El comportamiento de launchctl ha cambiado en el sentido de que si un servicio se habilita por la fuerza, no modificará el contenido de la fuente .plist, sino un directorio separado (que no debe modificar). Verifique la página de manual para launchctl y la opción "-w" bajo el comando "cargar". Por lo tanto, simplemente examinar el archivo no necesariamente le dirá si está deshabilitado o no. Claramente no está deshabilitado :)
Intente "launchctl unload -w org.apache.httpd.plist". Si eso funciona para usted, aún podrá iniciarlo a pedido con "launchctl start org.apache.httpd.plist"
Si eso no funciona, intente "launchctl remove org.apache.httpd.plist", que no le permitirá iniciar manualmente.
fuente
Según el valor de la etiqueta (p
org.apache.httpd
. Ej. ), Puede intentar encontrarlo.plist
utilizando el siguiente comando:Para encontrar qué inició el proceso, verifique sus PID principales, por ejemplo
O utilice el
pstree
comando especificando PID manualmente, por ejemplofuente