Em alguns casos, é necessário executar o script quando o sistema arranca. Estes casos incluem a necessidade de alterar a resolução do ecrã, iniciar determinadas aplicações e atualizar um determinado utilitário. A execução de um script pode ser implementada de várias formas. Isto pode ser feito usando uma shell gráfica ou o sistema de inicialização systemd, que é agora usado em quase todas as distribuições.
A primeira coisa a fazer é criar um script num local conveniente e executá-lo:
$ sudo gedit /script_path/script_name.sh
#!/bin/bash
echo "Hello world"
Este script irá mostrar mensagens "Hello world" ao utilizador. Quando o programa estiver pronto, é necessário torná-lo executável. Para o efeito, utiliza-se o seguinte comando:
$ sudo chmod ugo+x /script_path/script_name.sh
De seguida, no menu principal do sistema, é necessário lançar o utilitário "Automatically Run Applications".
Clique no botão "Add" (Adicionar) e introduza o caminho completo para o ficheiro de script no campo "Command" (Comando). Pode premir o botão "Procurar", encontrar e selecionar o ficheiro de script e premir "Adicionar".
A partir de agora, o programa será executado sempre que iniciar a shell gráfica do Ubuntu.
Use um comando especial para criar um ficheiro de serviço systemd
Este é o comando:
sudo systemctl edit --force myscript
You need to add the contents to this file:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/full/path/to/script/script_name.sh
[Install]
WantedBy=multi-user.target
Em seguida, na linha chamada ExecStart, é necessário preencher um dos seguintes requisitos: escrever o caminho para o script ou comando a ser executado. Depois disso, o script é adicionado ao carregador automático:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mysrcipt
O programa será iniciado após a inicialização do sistema. Para este efeito, pode utilizar o método "antigo": pode utilizar o rc.local
para criar o ficheiro /etc/rc.local
e escrever o caminho para o mesmo na linha ExecStart do ficheiro de serviço.