O processo da minha tela continuará após o logout?

1

Eu abri uma tela como usuário root digitando sudo su - e, em seguida, screen . Em seguida, executei um comando para iniciar meu servidor do Minecraft.

Depois disso, desanexei a tela pressionando Ctrl-A e d . O processo (meu servidor) continuará a ser executado depois que eu sair do meu computador (sem desligá-lo, obviamente)?

    
por tjespe 08.12.2016 / 20:36

2 respostas

2

A tela destina-se a fazer exatamente isso. Você pode testar isso com antecedência ao fazer isso:

$ sudo su -- # Note that you should use 2 dashes, here, if you use any (you don't have to, 'sudo su' would do the same thing).
# screen
# # Press [enter].
# sleep 100 && echo foo
# # Press [ctrl]+[A], then [D].
# # Press [ctrl]+[D].
$ sudo su
# screen -r
# # You'll be shown the line you entered before, again. After some time (100 seconds after you entered the 4th line), "foo" will be printed.

Todas as linhas que começam com $ são executadas como um usuário normal. Todas as linhas que começam com # são executadas como raiz. # mais tarde em uma linha marca o início de um comentário de linha única.

Na primeira linha, você efetua login como root. Você provavelmente deve descobrir se é necessário executar o servidor Minecraft como root.

Na segunda linha, você digita screen .

Pressionar enter é apenas para mostrar a tela de texto quando você abri-lo sem que os parâmetros desapareçam.

Na quarta linha, um comando que simboliza seu servidor Minecraft é executado. Ele dorme por 100 segundos e depois imprime "foo".

Pressionando crtl + A e então D , você desconecta da tela na quinta linha.

Na 6ª linha, você se desconecta da sessão de terminal pressionando ctrl + D . Note que isso deixa o seu terminal aberto enquanto você está logado como usuário regular em um nível inferior. Você só se desconecta da sessão de terminal no nível superior. Seu logout como root e também pode usar exit para fazer isso, se isso ajudar você a entender que está realmente fazendo logout. Você também pode sair como usuário comum. Apenas pressione ctrl + D , novamente. Se este for o nível mais baixo e você estiver em um tty, você verá a tela de login novamente. Se for o nível mais baixo e você estiver usando um emulador de terminal, a janela do terminal será fechada. Não há absolutamente nenhum problema com isso.

Na 7ª linha, você loga como root, novamente.

Na oitava linha, a mágica acontece. Você chama screen com o sinalizador r , que é obtido da página de manual screen (executar man screen ) significa:

  

Reinstale uma sessão e, se necessário, separe-a primeiro.

Como você só tem uma sessão em screen , volta para a sessão certa.

Após algum tempo, "foo" será impresso na tela, o que significa que você o verá no seu terminal quando estiver conectado à tela ou se conectar a ele posteriormente. Todos os seus comandos e suas saídas ainda estarão visíveis. A execução acontece quando você não está necessariamente logado.

    
por UTF-8 08.12.2016 / 22:42
0

Sim, este é um dos principais pontos do gnu-screen. Você pode verificar se a sessão de tela ainda está em execução depois de removê-la, mesmo que seja um usuário comum com pgrep screen . Você poderia, alternativamente, executar minecraft pgrep. Eu não sei o comando para iniciar minecraft mas você pode verificar o processo está sendo executado com pgrep para o processo do servidor de minecraft, mas eu não sei o comando.

    
por ianorlin 08.12.2016 / 21:27