Abra vários "Terminais" sem GUI (startx)

12

Não sei se o título é auto-explicativo, mas eu queria ter vários terminais (dois por enquanto seriam suficientes) abertos sem ter que iniciar a área de trabalho.

Quero ter um script PHP em execução (em tempo integral) e ainda poder usar meu terminal Raspi como é quando inicio meu Raspi com Raspbian.

pasadinhas
fonte
você ssh ou se conecta diretamente ao seu pi?
Steve Irwin

Respostas:

8

Basta usar Alt + F1-F12, para que você possa ter 12 guias diferentes do console sem iniciar uma GUI

nnm
fonte
esta é realmente a opção que eu uso atualmente :)
pasadinhas
1
Isso não funciona no Raspbian, não há login em nenhum dos outros ttys.
AndreKR 23/07/19
9

Se você estiver no console (teclado e tela conectados), poderá usar o sistema de console virtual Linux para alternar entre vários terminais usando (ctrl-) alt-F1 a F12 e mais com shift.

O número de terminais configurados e o número deles com processos getty (que solicitam login e senha) depende da configuração .

XTL
fonte
2
+1 porque quando conectado diretamente à máquina, esta é a forma "padrão" para obter um outro login, e não requer a instalação de tela / tmux ..
Kiirani
6

Ainda melhor do que screené (na minha opinião) tmux. Você pode instalá-lo via sudo apt-get install tmux. Verifique também a página de manual com man tmux.

Você pode iniciá-lo digitando tmuxem um de seus consoles (consulte a resposta do XTL).

Aqui estão os comandos mais importantes ( C-b dsignifica: pressione control e B ao mesmo tempo, depois pressione D):

  • C-b d desanexar sessão
  • tmux attach no shell para reconectar uma sessão em execução
  • C-b " dividir o quadro atual horizontalmente (novo shell é iniciado)
  • C-b % dividir o quadro atual verticalmente (novo shell é iniciado)
  • C-b arrow (up, down, left, right) navegar entre janelas no quadro atual
  • C-b c novo quadro (novo shell é iniciado)
  • C-b n próximo quadro
  • C-b l último quadro
  • C-b benviar C-bpara o aplicativo em execução
Arne
fonte
Forte defensor do tmux aqui também. A configuração da linha de status é muito mais simples e lida melhor com redesenhos.
Codd #
1
Note-se que tmux não tem o mesmo comportamento que a tela que diz respeito à fixação da sessão para vários VTs ( "-x screen")
Kiirani
3

Você pode fazer isso com a tela também. Com a tela, você pode até se desconectar da sessão da tela, sair, fazer login e reconectar à sessão da tela sem perder nada. Os programas continuarão em execução e toda a saída continuará sendo mostrada nos terminais dos quais você se desconectou.

Alguns links para os tutoriais da tela:

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

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

Um link para um tópico com algumas dicas úteis do .screenrc:

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

Um tutorial específico do Raspberry Pi:

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

Eric
fonte
3
  1. Se o script php que você deseja executar não interagir com o usuário ou precisar de informações,

    você pode usar o &comando que envia o script para o segundo plano

    Aqui está um exemplo.

    pi@raspberrypi ~ $php code1 &
    

    Isso enviará o script para o plano de fundo em que continuará sendo executado.

  2. Se você fizer o ssh no seu terminal, poderá fazer o ssh no mesmo usuário duas vezes e ter dois terminais.

  3. Se você deseja abrir vários terminais a partir de uma sessão ssh,

    Você deve olhar para a tela ou instalar melhor ainda, byobuque é um invólucro ao redor da tela.

    O byobu é um invólucro que permite abrir facilmente novas telas com uma simples tecla de função em vez da combinação de teclas de ctrl-a. Também mostra uma linha de status com todos os terminais virtuais abertos que podem ser nomeados.

    Outro recurso interessante é o fato de que toda a tela pode permanecer ativa enquanto a conexão ssh estiver desconectada. Você acabou de se conectar novamente via ssh e chamar byobu e tudo está como antes.

Espero que ajude.

SteveIrwin
fonte
2

Para completar, outra opção é usar o byobu . É uma camada conveniente na parte superior da tela GNU . Ele fornece padrões agradáveis ​​e, no meu sentido, é mais fácil de usar. Eu pessoalmente o uso no meu Rapsberry Pi e funciona muito bem. Para instalá-lo, basta digitar:

$ sudo apt-get install byobu

Depois de instalado, configure-o via:

$ byobu-config

Você pode optar por iniciá-lo automaticamente ao efetuar login e alternar os applets de notificação de status ( tempo de atividade, carregamento, data ... )

insira a descrição da imagem aqui

Como observação lateral, esse tipo de console virtual também é útil para compartilhar a mesma entrada / saída do console entre usuários diferentes em máquinas diferentes (você pode chamá-lo de compartilhamento de tela no modo de texto ).

Laurent Grégoire
fonte
Tentei byobou no outro dia e não estava feliz. O controle via teclas de função era muito instável. Não funcionou no OS X, também teve problemas quando estava no Debian. Vou ficar com o tmux e seus comandos. As teclas de função também colidem com mc (comando da meia-noite).
Arne
Quanto ao conflito de teclas de função com mc , você pode alterá-los no byobu (você pode facilmente selecionar entre dois modos diferentes via byobu-config).
Laurent Grégoire
2

Desde sua exigência inicial era lançar um script PHP no fundo, você pode usar o comando nohup. Exemplo:

$ nohup php myscript.php &

Depois de iniciado, o comando especificado como argumento da linha de comando para nohupé executado em segundo plano e sua entrada / saída é desvinculada do terminal que o iniciou, para impedir que o SIGHUPsinal (daí o nohupnome) seja enviado ao processo em segundo plano quando você sai do console inicial (sinal normalmente fazendo com que o programa saia). A saída é redirecionada para um arquivo (padrão nohup.out).

Para mais informações: man nohup.

Para uma resposta melhor e mais completa, convém "daemonize" completamente seu programa. Você provavelmente pode encontrar recursos na web que explicam como fazê-lo com scripts PHP.

Laurent Grégoire
fonte
Alguns shells (bash, zsh?) Também têm um comando disownpara impedir a interrupção de processos em segundo plano selecionados.
XTL