Estou hospedando alguns servidores de jogos Counter-Strike no meu servidor dedicado usando a tela. Eu tenho esse script que eu executo quando quero iniciar / parar os servidores:
#! /bin/sh
# /etc/init.d/css-server
#
case "$1" in
start)
echo "Starting Nullus Imprimis war server..."
screen -A -m -d -S css-war-server /home/css-servers/war-server/css/srcds_run -game cstrike +map de_dust2 +maxplayers 16 -autoupdate -port 2555 -tick 100
echo "Nullus Imprimis war server started"
echo "Starting Nullus Imprimis pub server #1..."
screen -A -m -d -S css-pub-server-1 /home/css-servers/pub-server-1/css/srcds_run -game cstrike +map de_dust2 +maxplayers 32 -autoupdate -port 2666 -tickrate 100
echo "Nullus Imprimis pub server #1 started"
;;
stop)
echo "Stopping Nullus Imprimis war server..."
screen -S css-war-server -X quit
echo "Nullus Imprimis war server stopped"
echo "Stopping Nullus Imprimis pub server #1..."
screen -S css-pub-server-1 -X quit
echo "Nullus Imprimis pub server #1 stopped"
;;
*)
echo "Usage: /etc/init.d/css-servers {start|stop}"
exit 1
;;
esac
exit 0
Eu coloquei esse script (chamado css-servers
) dentro /etc/init.d/
do meu conhecimento e isso significa que ele é executado quando o sistema inicializa. No entanto, quando verifico as telas ativas, screen -ls
não há nenhuma em execução.
Como posso fazer isso rodar na inicialização no Ubuntu Server?
update-rc.d
comando. Atualizei meu script e ele não funcionou mais até executar este comando. Obrigado. A propósito, como podemos "cancelar o registro" da execução na inicialização (como fizemos com o update-rc.d)?Você tem a primeira parte pronta.
/etc/init.d
é onde os scripts de inicialização são executados. No entanto, eles não são executados automaticamente.Eles são executados em ordem, conforme especificado pelos links simbólicos dos
/etc/rc*.d
diretórios. Cada nível de execução possui seu próprio diretório. Scripts com nomes de links iniciados comK
são executados com o stop stopmeter e aqueles com nomes iniciados comS
são executados com o parâmetro start. Por convenção, os nomes dos arquivos começam comK
ou sãoS
seguidos por um número de dois dígitos usado para sequenciar e terminam com o nome do script em/etc/init.d
.Os links podem ser criados manualmente, mas geralmente são criados com um script. O script genérico
update-rc.d
está disponível no Ubuntu. O comandoman update-rc.d
fornecerá documentação sobre quem usá-lo. No seu caso, tente:Para iniciá-lo usando o script init, tente:
Geralmente, inicio e paro o servidor dessa maneira para garantir que o script esteja funcionando conforme desejado. Então eu corro
update-rc.d
para adicioná-lo aos/etc/rc.d
diretórios do nível de execução.fonte
Se você não está entendendo por que o serviço não está sendo iniciado na inicialização. No entanto, ele funciona corretamente quando você tenta iniciar o serviço manualmente
service <your service> start
. Nesse caso, tente redirecionar a saída padrão e a saída de erro para algum arquivo. O que pode lhe dar uma pista de por que ele não está sendo iniciado durante a inicialização do sistema.por exemplo, dentro do seu script
fonte