Quero que um arquivo .jar seja executado toda vez que o servidor inicializar (estamos usando um VPS) e, por isso, editei o crontab usando crontab -e
e adicionando @reboot bash /home/bash/startserver.sh
. Mas nem cheguei ao ponto em que o script funciona.
Aqui está o meu script:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
A razão pela qual preciso usar screen
é que, quando inicio o bukkit.jar, ele entra em um console onde posso inserir mais comandos para esse programa (tenho certeza de que você está familiarizado com o Minecraft e seus servidores neste site, embora , haha), mas eu preciso ser capaz de executar outros comandos como root e para outros programas enquanto estiver em execução, e até fechar minha sessão PuTTY.
O único problema é que, quando esse script é executado, ele cria uma sessão de tela, mas seu ID não está listado screen -ls
, pois o ID está em branco. Em vez disso, tenho que /run/screen/S-root
procurar o ID e usar o típico screen -X -S $name quit
nele.
Talvez isso não seja possível, ou talvez haja uma maneira mais simples de fazer isso (eu adoraria mais simples), mas não consigo descobrir por que isso não está funcionando. E se isso for possível, é possível voltar a participar de uma sessão screen -S bukkit
ao executar um script bash? (Várias perguntas, eu acho, mas muito obrigado pela ajuda! (Parênteses))
bukkit.sh
script trabalhando na linha de comando. Em seguida, verifique sescreen -S bukkit path/to/bukkit.sh
funciona. Em seguida, verifique sescreen -d -m -S bukkit path/to/bukkit.sh
funciona. Por fim, configure o cron. Tente a coisa mais simples primeiro e faça pequenos passos para entender quais são as etapas. Diga-me isso e a mensagem de erro que você recebe se precisar de ajuda.Você deve
update-rc.d
, da seguinte forma, ativar o serviço na inicialização:fonte