Öffne mehrere "Terminals" ohne GUI (startx)

12

Ich weiß nicht, ob der Titel selbsterklärend ist, aber ich wollte mehrere (vorerst zwei) Terminals öffnen, ohne den Desktop starten zu müssen.

Ich möchte ein PHP-Skript ausführen (Vollzeit) und mein Raspi-Terminal weiterhin so verwenden können, wie es ist, wenn ich mein Raspi mit Raspbian starte.

Pasadinhas
quelle
sshst du oder verbindest du dich direkt mit deinem pi?
SteveIrwin

Antworten:

8

Verwenden Sie einfach Alt + F1-F12, damit Sie 12 verschiedene Konsolenregisterkarten haben können, ohne eine GUI zu starten

nnm
quelle
Dies ist eigentlich die Option, die ich derzeit benutze :)
Pasadinhas
1
Dies funktioniert nicht auf Raspbian, es gibt keine Anmeldung auf einem der anderen ttys.
AndreKR
9

Wenn Sie sich an der Konsole befinden (angeschlossene Tastatur und Bildschirm), sollten Sie in der Lage sein, mit dem virtuellen Konsolensystem von Linux zwischen mehreren Terminals zu wechseln, indem Sie (Strg-) Alt-F1 bis F12 und mehr mit Umschalttaste verwenden.

Die Anzahl der konfigurierten Terminals und die Anzahl der Terminals mit getty- Prozessen (die Sie nach Login und Passwort fragen) hängt von der Konfiguration ab .

XTL
quelle
2
+1, da dies bei direkter Verbindung mit dem Computer die "Standard" -Methode ist, um eine weitere Anmeldung zu erhalten, und keine Installation von screen / tmux erforderlich ist.
Kiirani,
6

Noch besser als screen(meiner Meinung nach) tmux. Sie können es über installieren sudo apt-get install tmux. Schauen Sie sich auch die Manpage mit an man tmux.

Sie können es starten, indem Sie tmuxauf einer Ihrer Konsolen tippen (siehe Antwort von XTL).

Hier sind die wichtigsten Befehle ( C-b dbedeutet: Drücke gleichzeitig die Steuertaste und die Taste B und dann die Taste D):

  • C-b d Sitzung trennen
  • tmux attach auf der Shell, um eine laufende Sitzung erneut anzuhängen
  • C-b " Aktuellen Frame horizontal teilen (neue Shell wird gestartet)
  • C-b % Aktuellen Frame vertikal teilen (neue Shell wird gestartet)
  • C-b arrow (up, down, left, right) Zwischen Fenstern im aktuellen Frame navigieren
  • C-b c neuer Frame (neue Shell wird gestartet)
  • C-b n nächstes Bild
  • C-b l letztes Bild
  • C-b bC-ban die laufende Anwendung senden
Arne
quelle
Auch hier ein starker Befürworter von tmux. Die Konfiguration der Statuszeile ist viel einfacher und ermöglicht ein besseres Neuzeichnen.
Codey
1
Zu beachten ist, dass tmux nicht dasselbe Verhalten wie screen aufweist, was das Anhängen der Sitzung an mehrere VTs ("screen -x")
betrifft
3

Dies können Sie auch mit screen tun. Mit screen können Sie sogar die Verbindung zu Ihrer Bildschirmsitzung trennen, sich abmelden, anmelden und dann erneut eine Verbindung zu Ihrer Bildschirmsitzung herstellen, ohne etwas zu verlieren. Programme werden weiterhin ausgeführt, und alle Ausgaben werden weiterhin auf den Terminals angezeigt, von denen Sie die Verbindung getrennt haben.

Ein paar Links zu Bildschirm-Tutorials:

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

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

Ein Link zu einem Thread mit einigen nützlichen .screenrc-Tipps:

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

Ein Raspberry Pi spezifisches Tutorial:

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

Eric
quelle
3
  1. Wenn das PHP-Skript, das Sie ausführen möchten, nicht mit dem Benutzer interagiert oder Eingaben benötigt,

    Sie können den &Befehl verwenden, der das Skript in den Hintergrund sendet

    Hier ist ein Beispiel.

    pi@raspberrypi ~ $php code1 &
    

    Dadurch wird das Skript in den Hintergrund verschoben und dort weiter ausgeführt.

  2. Wenn Sie in Ihr Terminal sshen, können Sie zweimal in denselben Benutzer sshen und haben zwei Terminals.

  3. Wenn Sie mehrere Terminals von einer SSH-Sitzung aus öffnen möchten,

    Sie sollten sich den Bildschirm ansehen oder noch besser installieren, byobuder ein Wrapper um den Bildschirm ist.

    byobu ist ein Wrapper, mit dem Sie einfach neue Bildschirme mit einer einfachen Funktionstaste anstelle einer Tastenkombination von Strg-A öffnen können. Außerdem wird eine Statuszeile mit allen offenen virtuellen Terminals angezeigt, die benannt werden können.

    Ein weiteres nettes Feature ist die Tatsache, dass Ihr gesamter Bildschirm eingeschaltet bleiben kann, während Ihre SSH-Verbindung getrennt ist. Du verbindest dich einfach wieder per ssh und rufst byobu an und alles ist wie vorher.

Ich hoffe es hilft.

SteveIrwin
quelle
2

Der Vollständigkeit halber kann auch byobu verwendet werden . Es ist eine praktische Ebene über dem GNU-Bildschirm . Es bietet schöne Standardeinstellungen und ist in meinem Sinne einfacher zu bedienen. Ich persönlich benutze es auf meinem Rapsberry Pi und es funktioniert einwandfrei. Geben Sie zum Installieren einfach Folgendes ein:

$ sudo apt-get install byobu

Einmal installiert, konfigurieren Sie es über:

$ byobu-config

Dort können Sie festlegen, dass es beim Anmelden automatisch gestartet wird , und die Statusbenachrichtigungs- Applets ( Betriebszeit, Ladezeit, Datum ... ) umschalten.

Bildbeschreibung hier eingeben

Nebenbei bemerkt, diese Art von virtueller Konsole ist auch nützlich, um die gleiche Konsolen-Eingabe / Ausgabe für verschiedene Benutzer auf verschiedenen Computern freizugeben (Sie können es als Textmodus-Bildschirmfreigabe bezeichnen ).

Laurent Grégoire
quelle
Ich habe es neulich versucht und war nicht glücklich. Die Steuerung über Funktionstasten war sehr flockig. Funktionierte nicht unter OS X, hatte auch Probleme unter Debian. Ich bleibe bei tmux und seinen Befehlen. Die Funktionstasten kollidieren auch mit mc (Midnight Commander).
Arne
Was den Konflikt der Funktionstasten mit mc angeht, können Sie diese auf byobu ändern (Sie können einfach über zwischen zwei verschiedenen Modi wählen byobu-config).
Laurent Grégoire
2

Da Ihre ursprüngliche Anforderung darin bestand, ein PHP-Skript im Hintergrund zu starten, können Sie den Befehl verwenden nohup. Beispiel:

$ nohup php myscript.php &

Einmal gestartet, spezifiziert der Befehl als Befehlszeilenargument nohupausgeführt wird , im Hintergrund , und die Eingabe / Ausgabe sind unverknüpft von dem Terminal, der es gestartet wird , um zu verhindern , SIGHUPSignal (daher der nohupName) mit dem Hintergrundprozess gesendet werden , wenn Sie beenden die Startkonsole (Signal, das normalerweise das Programm beendet). Die Ausgabe wird in eine Datei umgeleitet (Standard nohup.out).

Für weitere Informationen: man nohup.

Für eine bessere und vollständigere Antwort möchten Sie Ihr Programm möglicherweise vollständig "dämonisieren" . Wahrscheinlich finden Sie im Web Ressourcen, die erläutern, wie Sie mit PHP-Skripten vorgehen.

Laurent Grégoire
quelle
Einige Shells (bash, zsh?) Haben auch einen Befehl disownzum Verhindern des Aufhängens ausgewählter Hintergrundprozesse.
XTL