Terminal: Ao acordar, monte o disco externo automaticamente

3

Sou novo no Terminal, portanto sinta-se à vontade para declarar o óbvio.

O SleepWatcher executa os scripts antes e depois que o seu Mac entra no modo de suspensão. Eu tenho um script para desmontar um disco externo antes de dormir e, em seguida, remontá-lo depois. (Dessa forma, quando eu estou correndo para começar a trabalhar de manhã, posso apenas fechar a tampa, retirar todos os cabos e não receber uma queixa "Você não ejetou, idiota!").

Os scripts são executados corretamente e são desmontados logo antes de serem suspensos. Mas não será remontado depois do despertar.

#!/bin/sh

diskutil mount 8851F3A7-60A7-39A7-9DA8-41BE1499DE6C 

Eu posso executar este script manualmente no Terminal. Vai funcionar então. O SleepWatcher pode executar o script (posso obtê-lo para exibir uma caixa de diálogo), mas não o comando para montar.

O que estou perdendo?

Atualizar : eu tenho chmod-ed os scripts como + x. Can diskutil pode ser executado como + x?

    
por Matthew Robertson 12.08.2009 / 09:02

3 respostas

1

É bem possível que o dispositivo não esteja disponível quando o SleepWatcher executa seu script. Você pode tentar executar diskutil list > /PATH/TO/SOME/FILE no script para ver o que diskutil vê no momento em que o script é realmente executado. Talvez seja necessário introduzir um atraso (por exemplo, suspensão 5) no script enquanto você espera que a unidade fique disponível para ser montada.

    
por 12.08.2009 / 09:47
0

Experimente /usr/sbin/diskutil no script. Dependendo de como o aplicativo executa o script, isso pode fazer toda a diferença.

    
por 18.08.2009 / 22:30
0

Tente montar o próprio disco, em vez de um único volume (mesmo que seja o único volume no disco).

Para o seu script .wakeup, substitua

 diskutil mount 8851F3A7-60A7-39A7-9DA8-41BE1499DE6C

com:

 diskutil mountDisk disk1s3

... substituindo 'disk1s3' pelo identificador de dispositivo apropriado para seu próprio disco externo, é claro. Eu não acho que preciso dizer a alguém que é capaz de especificar um volume pelo seu UUID onde encontrar essa informação. Para todos os outros, veja como:

 diskutil list
    
por 25.08.2009 / 08:14