在没有GUI的情况下打开多个“端子”(startx)


12

我不知道标题是否可以自我解释,但是我想打开多个终端(现在两个就足够了)而不必启动桌面。

我希望有一个PHP脚本(全职)运行,并且仍然能够像使用Raspbian启动Raspi时一样使用Raspi终端。


您是ssh还是直接连接到您的pi?
SteveIrwin

嗨,您可能想要的东西可以由dvtm提供。brain-dump.org/projects/dvtm
cgte

Answers:


8

只需使用Alt + F1-F12,您就可以拥有12个不同的控制台选项卡,而无需启动GUI


这实际上是我当前使用的选项:)
pasadinhas 2014年

1
这在Raspbian上不起作用,任何其他tty上都没有登录。
AndreKR

9

如果您在控制台上(附带键盘和屏幕),则应该能够使用Linux 虚拟控制台系统在多个终端之间进行切换,使用(ctrl-)alt-F1到F12,以及更多带shift的终端。

配置的终端数量和具有getty进程(要求您输入登录名和密码)的终端数量取决于配置


2
1,因为当直接连接到机器上,这是“标准”的方式来获得另一个登录,并且不需要安装屏幕/ TMUX ..
Kiirani

6

screen(我认为)甚至比以前更好tmux。您可以通过安装它sudo apt-get install tmux。还可以通过查阅联机帮助页man tmux

您可以通过tmux在其中一个控制台上键入来启动它(请参阅XTL的答案)。

这是最重要的命令(C-b d意味着:同时按Control和B,然后按D):

  • C-b d 分离会话
  • tmux attach 在Shell上重新附加正在运行的会话
  • C-b " 水平分割当前帧(启动新外壳)
  • C-b % 垂直分割当前帧(启动新外壳)
  • C-b arrow (up, down, left, right) 在当前框架中的窗口之间导航
  • C-b c 新框架(新外壳启动)
  • C-b n 下一帧
  • C-b l 最后一帧
  • C-b b发送C-b到正在运行的应用程序

这里也是tmux的坚决拥护者。状态行配置简单得多,并且处理重绘效果更好。
Codey 2013年

1
应该注意的是,在将会话附加到多个VT方面,tmux的行为与屏幕不同(“ screen -x”)
Kiirani 2013年

3

您也可以在屏幕上执行此操作。使用screen,您甚至可以脱离屏幕会话,注销,登录,然后重新附加到屏幕会话,而不会丢失任何内容。程序将继续运行,并且所有输出将继续显示在您断开连接的终端上。

屏幕教程的几个链接:

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

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

带有一些有用的.screenrc技巧的线程链接:

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

Raspberry Pi特定教程:

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


3
  1. 如果您要运行的php脚本未与用户互动或需要输入,

    您可以使用&将脚本发送到后台的命令

    这是一个例子。

    pi@raspberrypi ~ $php code1 &
    

    这会将脚本发送到将继续运行的后台。

  2. 如果您在终端中使用ssh,则可以在同一用户中使用ssh两次,并拥有两个终端。

  3. 如果您想通过ssh会话打开多个终端,

    您应该看一下屏幕,甚至更好地安装byobu它,它是屏幕周围的包装。

    byobu是一个包装器,可以使用简单的功能键而不是ctrl-a的组合键轻松打开新屏幕。它还显示一个状态行,其中包含所有可以打开的虚拟终端。

    另一个不错的功能是,当ssh连接断开时,您的所有屏幕都可以停滞不动。您只需通过ssh再次连接并致电byobu,一切便像以前一样。

希望能帮助到你。


2

为了完整性,另一种选择是使用byobu。这是GNU屏幕顶部的一个方便层。它提供了不错的默认值,而且我认为它更易于使用。我个人在Rapsberry Pi上使用了它,效果很好。要安装它,只需键入:

$ sudo apt-get install byobu

安装后,可通过以下方式进行配置:

$ byobu-config

您可以选择在登录时自动启动它,并切换状态通知小程序(正常运行时间,负载,日期...

在此处输入图片说明

附带说明一下,这种虚拟控制台对于在不同计算机上的不同用户之间共享同一控制台输入/输出也很有用(您可以将其称为“ 文本模式屏幕共享”)。


前几天我尝试了byobou,但并不高兴。通过功能键进行的控制非常不稳定。在OS X上不起作用,在Debian下使用时也有问题。我会坚持使用tmux及其命令。功能键也与mc(午夜指挥官)冲突。
Arne

至于与mc的功能键冲突,您可以在byobu上进行更改(您可以通过轻松地在两种不同的模式之间进行选择byobu-config)。
LaurentGrégoire13年

2

由于您最初的要求是在后台启动PHP脚本,因此可以使用command nohup。例:

$ nohup php myscript.php &

一旦启动,指定为命令行参数to nohup的命令在后台执行,并且其输入/输出与启动它的终端断开链接,以防止在以下情况下将SIGHUP信号(因此称为nohup名称)发送给后台进程您退出启动控制台(信号通常会导致程序退出)。输出将重定向到文件(默认为nohup.out)。

有关更多信息:man nohup

为了获得更好,更完整的答案,您可能需要完全“守护”程序。您可能可以在网上找到解释如何使用PHP脚本进行操作的资源。


某些外壳程序(bash,zsh?)也具有disown防止挂断所选后台进程的命令。
XTL 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.