Usted puede hacer esto con un simple script de bash, el uptime
comando y launchd
. Si se ejecuta el comando, se le indicará la duración de la máquina ha sido:
$ uptime
6:08 up 20 days, 21:09, 4 users, load averages: 1.09 1.29 1.36
Así, el número que nos interesa es el "20", que vamos a evaluar en contra de nuestra condición de "1 día"
#!/bin/bash
#Maximum number of days to be up
max=1
#Get the uptime days and assign it to a variable
uptime_days=`uptime | cut -d " " -f 5`
if [ $uptime_days -ge $max ]
then
shutdown -h now
fi
exit 0
Asegúrese de configurar el script ejecutable o no ejecutar:
chmod +x shutdown24.sh
Ahora, aquí está la parte más importante. Cuando se desea evaluar esto? Técnicamente, su podría tener este script se ejecute cada hora (o incluso nunca minuto) para evaluar si el equipo ha sido hasta por 24 horas.
Esto no es recomendable porque si por alguna razón el equipo se enciende a las 10:00am (porque la persona era tarde, por ejemplo) que no la quiere cerrar a las 10:00 de la mañana siguiente, cuando se encuentran en medio de su trabajo.
Así que, voy a asumir que usted desea que se ejecute a medianoche, por lo que no sin querer apagar la máquina, mientras que las personas están trabajando. Lo que usted necesita es utilizar lauchd
y crear un .plist
que define el trabajo (similar a la de Programador de Tareas) en Windows.
Supongamos que llamamos a la secuencia de comandos bash shutdown24.sh
así que vamos a llamar nuestro .plsit com.user.shutdown24.plist
<?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>com.user.shutdown24</string>
<key>ProgramArguments</key>
<array>
<string>/Users/USERNAME/Path_to_Scripts/shutdown24.sh</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</dict>
</plist>
Copia este archivo a /Library/LaunchDaemons
y, a continuación, cargarlo launchd
:
sudo launchctl load com.user.shutdown24.plist
El trabajo será ejecutado como root y a las 12:00 cada mañana, se compruebe si el tiempo de actividad del sistema y el apagado si es mayor de 24 horas.