Avviare due istanze di un'applicazione

Qui potrete scambiare pareri, consigli, suggerimenti di programmazione su Swift, Java, SQL, C++, Pascal, VB, Basic, etc...

Moderatore: ModiMaccanici

Rispondi
Amaxmac
Nuovo Maccanico
Nuovo Maccanico
Iscritto il: dom, 29 gen 2017 22:21
Messaggi: 2
Oggetto del messaggio: Avviare due istanze di un'applicazione

Messaggio Inviato: dom, 29 gen 2017 22:30

Salve a tutti, ho avuto la necessità di avviare due istanze di un’applicazione che non lo consentiva. L’applicazione in questione è Blender, purtroppo non ho una macchina tanto performante da poter usare due istanze di blender in contemporanea però in quella occasione mi serviva. Ho trovato un comando da terminale che però mi ha permesso di fare quello che volevo

Codice: Seleziona tutto

open -n //Programmi/Grafica/blender-2.78/blender.app
successivamente, per puro esercizio, ho deciso di creare un flusso di lavoro con Automator in modo da non dover digitare ogni volta il codice nella finestra del terminale.
Quindi con “Esegui script shell” ed il comando sopracitato ho creato un’applicazione che mi apre tutte le istanze di Blender che voglio.
Allo stesso modo vorrei utilizzarlo per aprire altre applicazioni senza dover fare un flusso nuovo per ogni applicazione e nella fattispecie di Blender non vorrei dover cambiare il codice quando scarico la versione 2.9 ecc.
La mia domande è:
é possibile, e come, sostituire il percorso dell’app con una azione del tipo “cerca elemento nel finder” ecc.? Quindi avere il comando “open -n” e poi la scelta del programma?

Grazie
faxus
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 26208
Località: Due Sicilie
Contatta:

Top

Oggetto del messaggio: Re: Avviare due istanze di un'applicazione

Messaggio Inviato: lun, 30 gen 2017 01:41

Benvenuto.

Se vuoi presentarti alla comunità puoi farlo da
viewforum.php?f=30" onclick="window.open(this.href);return false;
Saremo in tanti a salutarti.

Mi sembra abbastanza scontato che il comando per eseguire non sia

Codice: Seleziona tutto

open -n //Programmi/Grafica/blender-2.78/blender.app
Bensì

Codice: Seleziona tutto

open -n /Applications/Blender.app
Per applicare uno script variabile per aprire istanze da Terminale devi impostare find.

Codice: Seleziona tutto

find -name /Applications nomeapplicazione -open -n
(o qualcosa del genere, ho accroccato alla meglio)

Non so quanto possa essere pratico, visto che dovresti aggiungere a mano il nome dell'applicazione
Amaxmac
Nuovo Maccanico
Nuovo Maccanico
Iscritto il: dom, 29 gen 2017 22:21
Messaggi: 2
Oggetto del messaggio: Re: Avviare due istanze di un'applicazione

Messaggio Inviato: lun, 30 gen 2017 08:32

Ciao Faxus e grazie per la tua celere risposta.
Il comando che o postato funziona correttamente sia da terminale che automator.
Il fatto che tu ritenga errato il percorso è dato dal fatto che io gestisco la posizione dei software seguendo un mio ordine.
Come dicevo anche il comando è corretto (lo dico solo perché funziona e non perché sono un’esperto).

La mia domanda invece è diversa, Vorrei usare il comando

Codice: Seleziona tutto

open -n
e poi scegliere successivamente l’applicazione e non scriverla a priori.
Attualmente io mi sono creato una serie di flussi di lavoro per ogni software che voglio utilizzare, ho applicato l’icona del software e lo uso per aprire il software stesso.
Adesso vorrei fare un flusso unico per aprire i diversi software.

Faccio un esempio, con automator puoi usare l’azione "apri applicazione” impostare in opzioni “mostra questa azione quando il flusso di lavoro è in corso” e così si ottiene un flusso di lavoro che ti permette di aprire le tue applicazioni.

Io vorrei usare quest’azione (o comunque una cosa simile) anteponendo il comando

Codice: Seleziona tutto

open -n
per avviare due istanze di un software che non lo consente.

Come da immagine allega

Anche poter scegliere solo alcuni software e non per forza tutti.

Grazie
Allegati
Schermata 2017-01-30 alle 09.01.20.png
Naturale questa soluzione non funziona, apre una sola istanza
Schermata 2017-01-30 alle 09.01.20.png (74.54 KiB) Visto 2297 volte
faxus
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 26208
Località: Due Sicilie
Contatta:

Top

Oggetto del messaggio: Re: Avviare due istanze di un'applicazione

Messaggio Inviato: lun, 30 gen 2017 09:32

Amaxmac ha scritto:... Vorrei usare il comando... e poi scegliere successivamente l’applicazione e non scriverla a priori...
Faccio un po' fatica a comprendere, per cui non so darti una soluzione immediata...

Diciamo che il comando open con l'opzione -n è il comando corretto per aprire l'istanza successiva alla prima apertura della medesima operazione.
Puoi benissimo scrivere il percorso assoluto dell'applicazione per la sua apertura o creare un flusso (per così poco?), nonché creare uno shell script.

Ma anche, ed è abbastanza semplice, aggiungere l'opzione -a e scrivere semplicemente il nome dell'applicazione, p.e:

Codice: Seleziona tutto

open -n -a Blender


PS: Se posso fare delle considerazioni...

Nel sistema esistono più modi per aprire le applicazioni.
Io preferisco l'icona nel Dock o lo stack della cartella Applicazioni.
Ma anche Spotlight, mentre quasi mai Launchpad e raramente Terminale, se non per usi speciali, tipo quello da te illustrato.
Puoi benissimo mettere lo script o flusso per la seconda istanza di un'applicazione sempre nel Dock.
Non saranno poi tantissime...

Mi è un po' ardua da capire l'esigenza di creare sostituzioni di directory funzionali in locale.
Per le applicazioni non Apple non pone grandi problemi.
Ma considera che anche la applicazioni caricate in /usr/local le metto sempre in /Applicazioni almeno come alias.
Senza usare sottocartelle a parte la canonica /Utility.
Prevenire i problemi fa parte della semplicità di gestione.

E non sono uno che di problemi non se ne crea...
Rispondi