Ejecutar script antes de reiniciar / apagar

3

¿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.

    
pregunta Till 29.10.2013 - 03:34

2 respuestas

4

Puedes usar un enlace 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 ven obligados a terminar.

Los ganchos de cierre de sesión se han desaprobado en 10.4, pero no he encontrado ninguna manera de ejecutar programas en el cierre de sesión de forma confiable con launchd. Tampoco he conseguido que rc.local.shutdown funcione. No conozco ninguna forma de ejecutar un enlace de cierre de sesión antes de apagar o reiniciar, pero no antes de cerrar sesión.

    
respondido por el user495470 29.10.2013 - 11:55
1

Si desea que Apache deje de iniciar desde su computadora durante el arranque, probablemente desee descargar el archivo .plist apropiado con launchctl:

Abra un terminal, luego
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

    
respondido por el napcae 29.10.2013 - 10:14

Lea otras preguntas en las etiquetas