Estoy intentando escribir un pequeño script para ejecutarlo cuando el usuario inicia sesión. Busqué y conseguí que el script funcionara, pero no pude ejecutarlo al iniciar sesión con .plist
Tenemos configuración de directorio activo. Cuando el usuario inicia sesión con sus credenciales, el script funciona manualmente una vez ejecutado.
tell application "finder"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
o
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
y lo guardé como .scpt, ambos funcionan manualmente
O necesito usarlo de esta manera
tell application "Terminal"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
guárdalo como .sh
Ahora el plist se guarda en /Library/LaunchAgents
:
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.script</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
</dict>
</plist>
y haz el siguiente comando
launchctl load /Library/LaunchAgents/com.script.plist
No funciona. No puedo hacer que la unidad se monte automáticamente durante el inicio de sesión
Por favor ayuda. No soy programador, así que sea específico.
Gracias, cris
Respuesta1
Su script es un AppleScript, no un script de Shell, por lo que no puede ejecutarlo directamente. Creo que funcionaría que el ossascript
comando lo interprete:
<array>
<string>/usr/bin/osascript</string>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
(& utilice una extensión de archivo más apropiada que ".sh")
Por cierto, estoy bastante seguro de que desea KeepAlive
configurarlo en <false/>
: con él configurado en <true/>
, su secuencia de comandos se volverá a ejecutar continuamente en lugar de solo una vez.