Sou relativamente novo no Linux (CentOS 7.2).
Estou tentando que meus Hurtworld
servidores sejam executados a partir de systemd
, para que eu possa usar esse bom recurso restart=always
. No entanto, para obter vários HW
servidores em execução, lembro-me de ter usado tmux
sessões individuais.
Este é um dos meus scripts de início de servidor:
#!/bin/bash
tmux new -d -s hurtworld5 '
./Hurtworld.x86_64 -batchmode \
-nographics \
-exec "host 15871;queryport 15872;servername [EU/US] <color=#f50>HURTCRAFT.com X1/VANILLA INF 25.05</color> www.hurtcraft.com;maxplayers 120;addadmin 76561197987029828;structurecomplexitylimit 100000;targetfps 60;spawncooldown -0.1 20;combatlogtimeout 30;afkkicktime 260000;chatconnectionmessagesenabled 0;vehicledecaytime 86400;stakedeauthtime 518400" \
-logfile "gamelog.txt"
'tmux detach -s hurtworld5
Esses scripts funcionam muito bem para a execução dos servidores, mas não importa a variação ou as extrações que eu uso, não consigo executá-lo por meio de systemd
. O melhor que consegui é ter o executável HurtworldServer
real em execução, mas ele morre muito rapidamente. Eu acredito que isso é porque eu não posso fazê-lo correr através de tmux
desta forma, eu acho que lembro de ter exatamente esse problema tentando fazer com que os servidores funcionassem, até que eu consegui tmux
.
Então, eu acho que preciso saber como iniciar um aplicativo a partir de uma sessão tmux
criada por systemd
. Mas então eu antecipo um novo problema em systemd
não registrar o executável do servidor como o processo principal, então restart = sempre só reiniciará tmux
se ele morrer?
Parece que estou preso entre uma rocha e um lugar difícil e está enrugando o meu cérebro para o esquecimento então, se algum de vocês grandes gênios que eu tenho aprendido desde que eu tenho esse
dedi
, gostaria de me ajudar a resolver isso eu ficaria muito grato.
Eu estaria disposto a usar algo como upstart
ou monit
, se isso me permitir a opção de usar o meu script e rastrear o processo real de outra maneira, ou algo assim.