Apri più "Terminali" senza GUI (startx)


12

Non so se il titolo sia autoesplicativo, ma volevo avere più terminali (due per ora sarebbero sufficienti) senza dover avviare il desktop.

Voglio avere uno script PHP in esecuzione (a tempo pieno) ed essere ancora in grado di usare il mio terminale Raspi com'è quando avvio il mio Raspi con Raspbian.


ssh o ti connetti direttamente al tuo pi?
SteveIrwin,

Ciao, ciò che potresti desiderare può essere fornito da dvtm. brain-dump.org/projects/dvtm
cgte

Risposte:


8

Basta usare Alt + F1-F12, in modo da poter avere 12 diverse schede della console senza avviare una GUI


questa è in realtà l'opzione che attualmente uso :)
pasadinhas

1
Questo non funziona su Raspbian, non c'è accesso su nessuna delle altre tty.
AndreKR,

9

Se sei sulla console (tastiera e schermo collegati) dovresti essere in grado di utilizzare il sistema di console virtuale Linux per passare da un terminale all'altro usando (ctrl-) alt-F1 fino a F12 e altro con shift.

Il numero di terminali configurati e il numero di essi con processi getty (che richiedono login e password) dipende dalla configurazione .


2
+1 perché quando è collegato direttamente alla macchina, questo è il modo "standard" per ottenere un altro accesso e non richiede l'installazione di screen / tmux ..
Kiirani

6

Anche meglio di quanto non lo screensia (secondo me) tmux. Puoi installarlo tramite sudo apt-get install tmux. Controlla anche la manpage con man tmux.

Puoi avviarlo digitando tmuxsu una delle tue console (vedi la risposta di XTL).

Ecco i comandi più importanti ( C-b dsignifica: premere control e B contemporaneamente, quindi premere D):

  • C-b d staccare la sessione
  • tmux attach sulla shell per ricollegare una sessione in esecuzione
  • C-b " dividere il frame corrente in orizzontale (la nuova shell viene avviata)
  • C-b % dividere il frame corrente verticalmente (la nuova shell viene avviata)
  • C-b arrow (up, down, left, right) navigare tra le finestre nel frame corrente
  • C-b c nuovo frame (la nuova shell viene avviata)
  • C-b n fotogramma successivo
  • C-b l ultimo fotogramma
  • C-b binvia C-ball'applicazione in esecuzione

Forte sostenitore di tmux anche qui. La configurazione della linea di stato è molto più semplice e gestisce meglio i ridisegni.
codice

1
Va notato che tmux non ha lo stesso comportamento dello schermo per quanto riguarda il collegamento della sessione a più VT ("schermo -x")
Kiirani

3

Puoi farlo anche con lo schermo. Con lo schermo, puoi persino staccarti dalla sessione dello schermo, disconnettersi, accedere, quindi ricollegarti alla sessione dello schermo senza perdere nulla. I programmi continueranno a essere eseguiti e tutta l'output continuerà a essere visualizzata sui terminali da cui si è disconnessi.

Un paio di collegamenti a tutorial sullo schermo:

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

Un collegamento a un thread con alcuni utili suggerimenti .screenrc:

https://bbs.archlinux.org/viewtopic.php?id=55618

Un tutorial specifico per Raspberry Pi:

http://raspi.tv/2012/using-screen-with-raspberry-pi-to-avoid-leaving-ssh-sessions-open


3
  1. Se lo script php che desideri eseguire non interagisce con l'utente o necessita di input,

    puoi usare il &comando che invia lo script in background

    Ecco un esempio

    pi@raspberrypi ~ $php code1 &
    

    Questo invierà lo script in background dove continuerà a funzionare.

  2. Se si entra nel terminale, è possibile utilizzare due volte lo stesso utente e avere due terminali.

  3. Se si desidera aprire più terminali da una sessione ssh,

    Dovresti guardare lo schermo o installare ancora meglio byobuche è un wrapper attorno allo schermo.

    byobu è un wrapper che consente di aprire facilmente nuove schermate con un semplice tasto funzione anziché la combinazione di tasti da ctrl-a. Mostra anche una linea di stato con tutti i terminali virtuali aperti che possono essere nominati.

    Un'altra caratteristica interessante è il fatto che tutto lo schermo può rimanere attivo mentre la connessione ssh è disconnessa. Ti connetti nuovamente tramite ssh e chiama byobu e tutto è come prima.

Spero che sia d'aiuto.


2

Per completezza, un'altra opzione è usare byobu . È un comodo livello nella parte superiore dello schermo GNU . Fornisce le impostazioni predefinite piacevoli ed è nel mio senso più facile da usare. Lo uso personalmente sul mio Rapsberry Pi e funziona perfettamente. Per installarlo, basta digitare:

$ sudo apt-get install byobu

Una volta installato, configurarlo tramite:

$ byobu-config

Puoi lì scegliere di avviarlo automaticamente quando accedi e attivare o disattivare le applet di notifica dello stato ( uptime, caricamento, data ... )

inserisci qui la descrizione dell'immagine

Come nota a margine, questo tipo di console virtuale è utile anche per condividere lo stesso input / output della console tra utenti diversi su macchine diverse (è possibile chiamarlo condivisione dello schermo in modalità testo ).


L'altro giorno ci ho provato byobou e non ero contento. Il controllo tramite i tasti funzione era molto traballante. Non funzionava su OS X, aveva anche problemi con Debian. Continuerò con tmux e i suoi comandi. I tasti funzione si scontrano anche con mc (comandante di mezzanotte).
Arne,

Per quanto riguarda il tasto funzione in conflitto con mc , è possibile modificarli su byobu (è possibile selezionare facilmente tra due diverse modalità tramite byobu-config).
Laurent Grégoire,

2

Poiché il requisito originale era di avviare uno script PHP in background, è possibile utilizzare il comando nohup. Esempio:

$ nohup php myscript.php &

Una volta avviato, il comando specificato come argomento della riga di comando su nohupviene eseguito in background e i suoi input / output vengono scollegati dal terminale che lo ha avviato, per impedire che il SIGHUPsegnale (da cui il nohupnome) venga inviato al processo in background quando si esce dalla console di avvio (segnale che di solito provoca l'uscita del programma). L'output viene reindirizzato a un file (impostazione predefinita nohup.out).

Per maggiori informazioni: man nohup.

Per una risposta migliore e più completa, potresti voler "demonizzare" completamente il tuo programma. Probabilmente puoi trovare risorse sul web che spiegano come farlo con gli script PHP.


Alcune shell (bash, zsh?) Hanno anche un comando disownper impedire il riaggancio dei processi in background selezionati.
XTL
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.