Escenario : Necesito averiguar cómo ejecutar el /usr/local/bin/RemoteUpdateManager
en el ciclo de mantenimiento de DeepFreeze. Durante este ciclo de mantenimiento, los ordenadores se reiniciarán en la pantalla de inicio de sesión y entrarán en un modo de descongelación y bloqueo durante un periodo de tiempo. Como se mencionó no tenemos un MDM todavía, así que he creado un demonio de lanzamiento que a mi entender debe ejecutar el script en el arranque sin requerir ninguna entrada o para iniciar sesión.
Actualizar.sh
#!/bin/bash
rum=/usr/local/bin/RemoteUpdateManager
if [[ -f $rum ]]; then
echo "Starting Adobe RemoteUpdateManger..."
sudo $rum --action=list #Listing the updates for now, but will install later
else
echo "Adobe RemoteUpdateManager not found."
fi
Basado en la guía RUM de Adobe, enlace Tiene que usar sudo para RemoteUpdateManager
com.test.schedule.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>EnviromentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:</string>
</dict>
<key>Label</key>
<string>com.test.updateschedule</string>
<key>ProgramArguments</key>
<array>
<string>sudo</string>
<string>sh</string>
<string>/Library/Scripts/Updates.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/EsoUpdateError.log</string>
<key>StandardOutPath</key>
<string>/var/log/EsoUpdate.log</string>
Pasos dados
- Copie update.sh en
/Library/Scripts/
y el .plist a/Library/LaunchDaemons/
sudo chown root:wheel
.shsudo chown root:wheel
.plist.sudo launchctl load -w /Library/LaunchDaemons/.plist
- En el momento en que cargo el .plist, crea dos registros en
/var/log/
. El registro de standardoutpath lista todas las actualizaciones que es exactamente lo que quiero.
Edición
Después de reiniciar el ordenador para ver si los resultados se mantienen, observo que los resultados no se pueden reproducir. En su lugar recibo lo siguiente en el registro StandardErrorPath:
RemoteUpdateManager sale con código de retorno (1)
Basado en la guía RUM, el Código de Retorno (1) es: "Error genérico, por ejemplo un error interno. Por ejemplo, podría ser el caso de que la instalación de Adobe Application Manager esté dañada o la red no esté presente. En este caso, normalmente, el proceso de descarga o instalación de actualizaciones no puede iniciarse en absoluto".
Llegué a aplicar chmod 777 y chown Root:wheel tanto en el .sh como en el .plist, junto con `/usr/local/bin/RemoteUpdateManager'. Probé sin sudo en el .plist y en el .sh.