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.
Respostas:
Basta usar Alt + F1-F12, para que você possa ter 12 guias diferentes do console sem iniciar uma GUI
fonte
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 .
fonte
Ainda melhor do que
screen
é (na minha opinião)tmux
. Você pode instalá-lo viasudo apt-get install tmux
. Verifique também a página de manual comman tmux
.Você pode iniciá-lo digitando
tmux
em um de seus consoles (consulte a resposta do XTL).Aqui estão os comandos mais importantes (
C-b d
significa: pressione control e B ao mesmo tempo, depois pressione D):C-b d
desanexar sessãotmux attach
no shell para reconectar uma sessão em execuçãoC-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 atualC-b c
novo quadro (novo shell é iniciado)C-b n
próximo quadroC-b l
último quadroC-b b
enviarC-b
para o aplicativo em execuçãofonte
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
fonte
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 planoAqui está um exemplo.
Isso enviará o script para o plano de fundo em que continuará sendo executado.
Se você fizer o ssh no seu terminal, poderá fazer o ssh no mesmo usuário duas vezes e ter dois terminais.
Se você deseja abrir vários terminais a partir de uma sessão ssh,
Você deve olhar para a tela ou instalar melhor ainda,
byobu
que é 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.
fonte
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:
Depois de instalado, configure-o via:
Você pode optar por iniciá-lo automaticamente ao efetuar login e alternar os applets de notificação de status ( tempo de atividade, carregamento, data ... )
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 ).
fonte
byobu-config
).Desde sua exigência inicial era lançar um script PHP no fundo, você pode usar o comando
nohup
. Exemplo: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 oSIGHUP
sinal (daí onohup
nome) 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ãonohup.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.
fonte
disown
para impedir a interrupção de processos em segundo plano selecionados.