Messaggi: 5
Discussioni: 2
Registrato: Apr 2017
Reputazione:
0
Buongiorno a tutti,
non sono un esperto in bash scripting e volevo sottoporvi un quesito...
Sto utilizzando il mio Raspberry per avviare il servizio di Amazon Echo "Alexa AVS" e in contemporanea far girare il software per un magicmirror.
Nello specifico per far partire Alexa ho la necessità di aprire 3 terminali distinti :
1)Companionservice
2)Client java
3)Wakeword
Mentre per il mirror me ne basta uno solo.
Vorrei creare uno script bash capace di rendere automatico il processo ma non ne vengo fuori.
Vi allego quello che mi è venuto in mente di scrivere:
#!/bin/bash
echo "Avvio di ALEXA VOICE ASSISTANT"
cd alexa-avs-sample-app/samples/companionService && npm start
sleep 10
lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec
sleep 60
lxterminal -e cd alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory
sleep 100
echo "Avvio di MagicMirror"
lxterminal -e cd MagicMirror && npm start
done
In questo modo parte solo il companionservice, vorrei capire come far aprire un nuovo terminale che possa eseguire il comando richiesto.
Grazie in anticipo per l'aiuto!
Giuliano
Messaggi: 6,913
Discussioni: 262
Registrato: Mar 2015
Reputazione:
366
Se non ricordo male, se usi &&, lui attende che il primo comando sia terminato, prima di eseguire il secondo. Usa solo &. Forse non hai bisogno nemmeno degli sleep
Messaggi: 5
Discussioni: 2
Registrato: Apr 2017
Reputazione:
0
La doppia & funziona perché nel primo comando va benissimo!
Il problema è che dal secondo comando in poi non va..inizio a dubitare di non poter scrivere lxterminal -e .......per far partire un secondo terminale che esegua il secondo comando
Inviato dal mio iPhone utilizzando Tapatalk
Messaggi: 989
Discussioni: 7
Registrato: Aug 2016
Reputazione:
24
prova
Codice:
#!/bin/bash
echo "Avvio di ALEXA VOICE ASSISTANT"
cd alexa-avs-sample-app/samples/companionService && npm start &
sleep 10
lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec &
sleep 60
lxterminal -e cd alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory &
sleep 100
echo "Avvio di MagicMirror"
lxterminal -e cd MagicMirror && npm start &
done
in altre parole ho aggiunto un "&" alla fine delle righe dove esegui un comando e poi vai in sleep.
serve per spedire l'esecuzione di quel comando in background, ho l'impressione che altrimenti aspetti che termini per proseguire (e andare nel primo sleep nel tuo caso)
Coltiva linux, che windows si pianta da solo! (cit.)
Messaggi: 5
Discussioni: 2
Registrato: Apr 2017
Reputazione:
0
Provato anche la &, ma niente da fare...il problema è che non apre nuovi terminali per l'esecuzione dal secondo comando in poi..fa tutto sul primo..
Inviato dal mio iPhone utilizzando Tapatalk
Messaggi: 989
Discussioni: 7
Registrato: Aug 2016
Reputazione:
24
27/04/2017, 07:58
(Questo messaggio è stato modificato l'ultima volta il: 27/04/2017, 08:12 da Painbrain.)
ma per primo comando intendi questo?
Codice:
cd alexa-avs-sample-app/samples/companionService && npm start
mi permetto di aggiungere che
Codice:
lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec
credo sia errato perchè manca la path esatta
Codice:
lxterminal -e cd /home/pi/alexa-avs-sample-app/samples/javaclient && mvn exec:exec
forse è più corretto, metti ovviamente il percorso corretto.
altra domanda, ma a che ti serve entrare in quelle cartelle se poi il comando è "mvn" che parte da ovunque nel sistema?
Coltiva linux, che windows si pianta da solo! (cit.)
Messaggi: 5
Discussioni: 2
Registrato: Apr 2017
Reputazione:
0
La path l'avevo corretta,hai ragione! Se anche volessi far partire MVN EXEC:EXEC da un nuovo terminale senza spostarmi con cd alexa........comunque il nuovo terminale non viene aperto!
Inviato dal mio iPhone utilizzando Tapatalk
Messaggi: 989
Discussioni: 7
Registrato: Aug 2016
Reputazione:
24
27/04/2017, 20:42
(Questo messaggio è stato modificato l'ultima volta il: 27/04/2017, 20:43 da Painbrain.)
no il problema di fondo è che la riga sono due comandi separati
in pratica con la prima parte apri un terminale per entrare in una cartella (lxterminal -e cd alexa-avs-sample-app/samples/companionService) e poi esegui un comando senza aprire nulla (npm start)
come fossero due comandi diversi dati separatamente uno dall'altro
adesso io NON so dove sta npn. parte da una cartella nella tua home? è nelle cartelle di sistema quindi parte da ovunque?
nel secondo caso (più probabile) prova semplicemente mettendo
Codice:
lxterminal -e npm start
se invece fosse il primo caso e la cartella fosse /home/pi/alexa-avs-sample-app/samples/companionService allora
Codice:
lxterminal -e ./home/pi/alexa-avs-sample-app/samples/companionService/npm start
occhio al punto davanti il primo slash
questo vale per la prima "riga"
poi replichi per le successive
Coltiva linux, che windows si pianta da solo! (cit.)