Existe um logout de terminal que faça algo parecido com o que o GNU Screen faz?

8

Como muitos de vocês sabem, o GNU Screen é uma boa ferramenta que permite fazer algo como:

Outro bom uso para desanexar e reconectar é como um recurso de "área de trabalho remota" no modo console. Você pode se desconectar de uma sessão de tela no trabalho, fazer o shell na máquina a partir de casa e reconectar. Muito, muito útil. Com um pouco de trabalho extra, você pode até ter vários terminais conectados à mesma sessão - excelente para esforços e reuniões de colaboração.

Agora estou curioso, há uma maneira de fazer isso sem Screen. Aka, em vez de logut, digito magiclogout e da próxima vez que fizer login, recebo minha antiga sessão (se o sistema operacional não tiver reiniciado ofc)

NoSenseEtAl
fonte

Respostas:

6

O byobu é baseado na tela; Ele tem uma opção de menu para torná-lo seu shell padrão.

Você pode exitnormal ou desanexar alt-A, Dcomo faria com a tela plana e sua sessão estará aguardando quando você efetuar login novamente.

Além disso, adiciona várias chaves para gerenciamento de terminal, F2para criar um novo terminal F3e F4para alternar entre janelas, e uma barra de status com vários indicadores úteis, como atualizações de pacotes pendentes.

Ele é instalado por padrão nas versões do Ubuntu Server e rapidamente se torna meu terminal padrão na maioria dos servidores que eu gerencio.

Como eu disse, o byobu depende da tela para funcionar ... Não conheço outra maneira de retomar uma sessão que não seja a de manter um processo em execução na máquina de destino.

Edit: byobu também irá embrulhar o tmux (que é o padrão nas versões mais recentes do Ubuntu). Você não precisa fazer nada na maioria dos casos - ele usará apenas o multiplexador de terminal padrão.

Adrian
fonte
2

você pode querer dar uma olhada no tmux

user8868
fonte
1

Você pode ter algo assim com um software de desktop remoto que crie sua própria sessão, como, por exemplo, o FreeNX no servidor e o cliente NoMachine no cliente.

Você também pode usar isso com a máquina servidor e cliente sendo a mesma máquina, para simular o que você solicita.

enzotib
fonte
1

Isso não é possível sem o uso de tela, byobu (como mencionado por Adrian) ou ferramentas similares.

Um shell interativo deve estar conectado a um tty. Se você sair, o shell perde a conexão com o tty e sai.

A tela e os amigos evitam isso criando um ou mais ttys virtuais persistentes. Quando você efetua logout, o shell permanece conectado ao tty virtual e não percebe que o usuário foi desconectado.

Para programas não interativos, um tty não é necessário e, em vez da tela, você pode usar nohup.

Como aponta Adrian, é possível usar o byobu por padrão e, como você sabe, muitos usuários avançados apenas iniciam screencomo a primeira coisa que fazem após o login. Existe um motivo específico, você deseja evitar a tela?

Jan
fonte
Considero a tela inconveniente porque estou acostumada a rolar e o modo de cópia é um pouco irritante para mim. Pequenas coisas que eu sei. :)
NoSenseEtAl
0

Você pode iniciar um comando via nohup:

nohup command &

Se você deseja que a saída seja salva em algum lugar, faça

nohup command > output.txt &

Agora você precisa desconectar o software em execução

  1. pressionando CTRL-Z
  2. entrar bg
  3. disown %1

Mais dicas para isso nohuppodem ser encontradas em sua página de manual ( http://ss64.com/osx/nohup.html ), o mesmo para disown( http://ss64.com/osx/disown.html ).

Sascha Biermanns
fonte