
Eu tenho um servidor Linux sem cabeça ao qual me conecto por meio de SSH. Recentemente comecei a usá-lo, além de suas tarefas normais, para hospedar um [servidor de jogos][1] escrito em C# com Mono. Tem um desempenho admirável! No entanto, se eu me desconectar da minha sessão SSH, ela desliga e os clientes do jogo são desconectados.
Para iniciar o servidor do jogo, executo o comando mono KMPServer.exe
. Depois disso, o software do servidor é iniciado e exibe informações de configuração - no entanto, o servidor do jogo não funciona até que eu digite /start
.
Não posso usar nohup
por causa disso - o processo de inicialização do servidor envolve primeiro executá-lo com mono e, em seguida, interagir com ele para emitir um /start
comando " ". Curiosamente, também não consigo fazer o processo em segundo plano (isso é normal para Mono?).
Existe alguma maneira de executá-lo de forma a evitar que o servidor do jogo feche quando eu desconectar a sessão SSH?
Resumo:
- O software do servidor (link morto removido) é um servidor multijogador de terceiros (parte de um mod) paraPrograma Espacial Kerbal.
- O servidor Linux está executando Arch Linux x86_64.
- A versão Mono instalada é 3.2.3
Responder1
Parece que você deveria poder usar uma sessão de tela. Se você não estiver familiarizado com a ferramenta screen, verifique as páginas de manual ou visiteExemplos de comandos de tela: obtenha controle do terminal Linux/Unix.
Primeiro, instale-o com pacman -S screen
. Em seguida, inicie uma nova sessão com screen mono KMPServer.exe
, execute tudo o que for necessário e desanexe a sessão com Ctrl+ A+ D. Se você precisar anexar a sessão novamente, use screen -x
.