Executar script ao inicializar o Linux (Ubuntu)
Overview
Olá, entusiastas do Linux e administradores de sistemas! Já se pegaram precisando que um determinado script ou aplicação inicie automaticamente junto com o sistema? Bem, vocês estão no lugar certo! Hoje, vamos mergulhar em três formas eficientes de conseguir exatamente isso, garantindo que seu servidor de Minecraft, ou o que mais precisarem, esteja pronto para a ação assim que a máquina despertar. Preparados para tornar suas vidas um pouco mais automatizadas? Vamos lá!
Não é incomum precisarmos executar um script sempre que a maquina for iniciada. No linux esta é uma tarefa bem simples. Neste post, vou mostrar 3 formas de fazer isso. Obviamente não são as únicas formas de se fazer isso, mas todas são bem simples…
…neste post, vou usar o nano, mas se você preferir ficar preso em um editor de texto, pode usar o Vi.
Para todas as soluções, você vai precisar de privilégios elevados….
sudo su
Solução 01: Adicionando um initscript
Crie um novo script em /etc/init.d/
nano /etc/init.d/anotherScript
Obviamente, seu script não precisa ter o nome anotherScript, você pode mudar isso para o que preferir… Neste script, você vai codificar os comandos que precisam ser executados toda vez que a maquina for iniciada.
Para este exemplo, o script vai inicializar um servidor de Minecraft…
#!/bin/sh
java -Xms1024M -Xmx2048M -jar /srv/minecraft/mine.jar
Faça o script ser executável.
chmod ugo+x /etc/init.d/anotherScript
Configure a inicialização do sistema para rodar seu script…
update-rc.d anotherScript defaults
*Update 05/12/2017*: O script acima não está aderente ao padrão LSB-Init. Este post mostra como criar um script de inicialização padronizado. Se escolher este caminho, sugiro seguir os passos do post novo e utilizar um cabeçalho semelhante a este:
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs screen-cleanup
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
Solução 02: Adicionando comandos ao /etc/rc.local
Edite o arquivo /etc/rc.local/
nano /etc/rc.local
Adicione o seu comando…
/caminho/para/o/meu/script.sh || exit 1 #Adicionado manualmente
exit 0
Solução 03: Adicionando um job upstart (Recomendado)
Cria o arquivo /etc/init/anotherScript.conf
nano /etc/init/anotherScript.conf
Insira um conteúdo informando o que deve ser feito…
description "Iniciar Minecraft automaticamente..."
start on startup
task
exec /srv/minecraft/startup.sh