Skip to main content

Introduzione

laravel/multiplex è una terminal UI (TUI) che permette di eseguire più comandi contemporaneamente. È utilizzato da php artisan dev di Laravel 13 e permette di gestire in un unico terminale i processi necessari allo sviluppo locale, come server di sviluppo PHP, worker delle code, monitoraggio dei log e Vite. L’output di ogni processo viene mostrato in una tab e sono supportate la ricerca e lo scroll dell’output. All’uscita, l’output di ogni processo viene riscritto nello scrollback del terminale, così puoi consultare i log anche dopo aver terminato la TUI.

Installazione ed esecuzione diretta

Nelle applicazioni Laravel php artisan dev esegue automaticamente la configurazione necessaria, quindi in genere non serve installare Multiplex direttamente. Per usarlo in modo autonomo, prepara Node.js 22.13 o superiore e installalo con npm.
I comandi vanno passati nel formato label,command.

TUI e modalità inline

Se stdin e stdout sono un TTY viene avviata la TUI a tab. Con s puoi passare alla vista in streaming, con / puoi cercare nell’output e con r puoi riavviare il processo selezionato. Per uscire usa q. In assenza di un TTY, come su CI o in una pipeline, viene attivata automaticamente la modalità inline. A ogni riga viene aggiunta l’etichetta del processo e l’output viene stampato nell’ordine in cui arriva. Per forzare la modalità inline in modo esplicito, usa -i.
In modalità inline l’esecuzione termina quando l’ultimo processo esce e il fallimento di un comando è riflesso nel codice di uscita. Per gestire i risultati in formato JSON, usa --json.

Riavvio automatico e gestione della terminazione

I processi che vanno in crash vengono riavviati automaticamente, dopo un secondo di attesa, fino a un massimo di cinque volte. I processi che escono entro un secondo dall’avvio non vengono ritentati, perché è probabile che non riescano a partire (per esempio a causa di un eseguibile mancante o di un conflitto sulla porta). Per comandi da eseguire una sola volta, come build o migrazioni, specifica --no-restart.
All’uscita o alla ricezione di un segnale, Multiplex termina il process group dei processi figli. Questo evita che rimanga in esecuzione solo il server di sviluppo occupando la porta e permette di fermare più processi in un colpo solo.

Note

Ai processi figli non viene passato lo stdin. Per questo motivo, comandi che richiedono input come php artisan tinker o le conferme durante le migrazioni non possono essere eseguiti da Multiplex. Esegui i comandi interattivi in un altro terminale. Multiplex mette a disposizione anche un’API programmatica, ma i comandi vengono eseguiti tramite sh -c. Non incorporare valori non affidabili, come file di configurazione o dati di richiesta, nelle stringhe dei comandi.

Riferimenti

Ultima modifica il 21 agosto 2026