Executar script ao inicializar o Linux (Ubuntu)

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

 

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Conhecimento Técnico, Dev, Linux/Bash and tagged , .

One Comment

  1. Pingback: Entendendo o padrão LSB Init do Linux – Raccoon Ninja

Comments are closed.