Quiero ejecutar un script cada vez que apague mi ordenador. Sé que esto es un duplicado y realmente leí muchos hilos similares, pero o bien la respuesta ya no funciona o no veo cómo funciona la respuesta.
Ya me di cuenta de que esa Apple quiere que use launchd
. La mayoría de las otras soluciones ya no funcionan de todos modos.
Así que encontré esta respuesta pero por lo que veo launchd
hace todo cuando el sistema se inicia. Copiaré el código de abajo
<?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>Label</key><string>boot.shutdown.script.name</string>
<key>ProgramArguments</key>
<array>
<string>SCRIPT_PATH/boot-shutdown.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>LOG_PATH/boot-shutdown.log</string>
<key>StandardErrorPath</key>
<string>LOG_PATH/boot-shutdown.err</string>
</dict>
</plist>
y el script
#!/bin/bash
function shutdown()
{
# INSERT HERE THE COMMAND YOU WANT EXECUTE AT SHUTDOWN OR SERVICE UNLOAD
exit 0
}
function startup()
{
# INSERT HERE THE COMMAND YOU WANT EXECUTE AT STARTUP OR SERVICE LOAD
tail -f /dev/null &
wait $!
}
trap shutdown SIGTERM
trap shutdown SIGKILL
startup;
Desafortunadamente no hay un tutorial para launchd
que incluyen una explicación muy básica. Por ejemplo, los argumentos de los corchetes son más que simples cuerdas que desencadenan algo, pero no puedo encontrar una lista de qué palabras desencadenan qué acción.
Me gustaría entender la idea básica de launchd
. Especialmente cuáles son los comandos para ejecutar un script cuando los sistemas se inician y cuando los sistemas se apagan.