Executar script ao inicializar o Linux (Ubuntu)

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