Script de inicialização do Mavericks

Script de inicialização do Mavericks

Estou tentando escrever um pequeno script para iniciar quando o usuário fizer logon. Eu pesquisei e consegui que o script funcionasse, mas não consegui executar no logon com .plist

Temos configuração de diretório ativo. Quando o usuário faz login usando suas credenciais, o script funciona manualmente depois de executado

tell application "finder"
    set MyName to do shell script "whoami"
    mount volume "smb://server/folder/" & MyName
end tell

ou

set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName

e salvei como .scpt funciona manualmente

Ou eu preciso usá-lo dessa maneira

tell application "Terminal"
    set MyName to do shell script "whoami"
    mount volume "smb://server/folder/" & MyName
end tell

salve-o como .sh

Agora o plist está salvo em /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>

e faça o seguinte comando

launchctl load /Library/LaunchAgents/com.script.plist

Não funciona. Não é possível montar a unidade automaticamente durante o logon

Por favor ajude. Eu não sou um programador, então seja específico.

Obrigado, Chris

Responder1

Seu script é um applescript, não um script de shell, portanto você não pode executá-lo diretamente. Acho que funcionaria se o ossascriptcomando o interpretasse:

<array>
    <string>/usr/bin/osascript</string>
    <string>/Users/Shared/SCRIPT.sh</string>
</array>

(e use uma extensão de arquivo mais apropriada do que ".sh")

Aliás, tenho certeza que você deseja KeepAlivedefinir como <false/>- com ele definido como <true/>, seu script será executado novamente continuamente, em vez de apenas uma vez.

informação relacionada