¿Es posible ejecutar un script/comando justo antes de que OS X se apague o reinicie?
Me gustaría ejecutar sudo apachectl stop
para evitar que apache se inicie automáticamente.
Puedes usar un gancho de cierre de sesión:
sudo defaults write com.apple.loginwindow LogoutHook ~/.logouthook
echo $'#!/bin/bash\napachectl stop' > ~/.logouthook
chmod +x ~/.logouthook
El valor de la clave LogoutHook solo puede ser una ruta a un ejecutable y no un comando de shell. El enlace de cierre de sesión se ejecuta con privilegios de superusuario, por lo que no necesita sudo.
El comando predeterminado modifica /var/root/Library/Preferences/com.apple.loginwindow.plist. Agregar una clave LogoutHook a /Library/Preferences/com.apple.loginwindow.plist no funciona.
Si un enlace de cierre de sesión tarda lo suficiente en ejecutarse, se muestra una pantalla gris hasta que finaliza el enlace de cierre de sesión. No parece haber ningún límite de tiempo después del cual los ganchos de cierre de sesión se vean obligados a terminar.
Los ganchos de cierre de sesión quedaron obsoletos en 10.4, pero no he descubierto ninguna forma de ejecutar programas al cerrar sesión de manera confiable con launchd. Tampoco he conseguido que rc.local.shutdown funcione. No conozco ninguna forma de ejecutar un gancho de cierre de sesión antes de apagar o reiniciar, pero no antes de cerrar sesión.
Si desea que Apache deje de iniciarse desde su computadora en el arranque, probablemente desee descargar el .plist apropiado con launchctl:
Abra una terminal, luego
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
/usr/sbin/apachectl
?apachectl stop
solo se ejecuta launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
en OS X. Consulte cat /usr/sbin/apachectl
.
eddie kelley
sin ladera