Comandos Linux

Como executar comandos e scripts do Linux automaticamente na reinicialização do sistema

Como executar comandos e scripts do Linux automaticamente na reinicialização do sistema
Executar aplicativos e scripts automaticamente na inicialização pode ser útil para automatizar tarefas e eventos comuns de inicialização. Este artigo irá explicar alguns métodos que podem ser usados ​​para iniciar aplicativos e scripts em uma nova reinicialização ou um novo login.

Aplicativos de inicialização

Ubuntu e outras distribuições baseadas em GNOME vêm com um aplicativo simplesmente chamado de “Aplicativos de Inicialização”. Ele pode ser usado para gerenciar aplicativos e scripts que são executados em uma nova reinicialização do sistema ou login.

Abra o aplicativo “Startup Applications” no inicializador de aplicativos e clique no botão “Add” para adicionar uma nova entrada.

Preencha os campos “Nome” e “Comando” de acordo com suas necessidades e clique no botão “Adicionar” para finalizar a criação de uma nova entrada. A entrada criada na imagem abaixo irá enviar um lembrete “Faça um Backup” como uma notificação do sistema em cada reinicialização / login. Você pode substituí-lo pelo seu próprio comando ou pelo caminho completo do seu script bash. Você também pode usar qualquer comando de sistema existente ou executáveis ​​geralmente localizados em várias pastas "bin" em todo o sistema de arquivos.

Como afirmado acima, um lembrete de backup é mostrado em cada reinicialização.

Systemd

Systemd é um daemon e gerenciador de serviços que contém vários utilitários para gerenciar processos do sistema e componentes do sistema operacional. Em sua forma simplista, é normalmente usado para iniciar e encerrar serviços em um novo ciclo de inicialização.

Systemd pode ser usado para iniciar automaticamente um aplicativo ou executar um script em uma nova inicialização. Para criar a mesma notificação de lembrete de backup explicada acima, primeiro você deve criar as pastas e o arquivo necessários executando os comandos abaixo:

$ mkdir -p ~ /.config / systemd / user
$ nano ~ /.config / systemd / user / backup_reminder.serviço

Substitua “nano” pelo comando do seu editor de texto favorito. Substitua “backup_reminder” por qualquer outro nome de sua preferência.

Cole o código abaixo no backup_reminder.arquivo de serviço criado usando o comando acima.

[Unidade]
Description = Envia um lembrete de backup em cada reinicialização
PartOf = sessão-gráfica.alvo
[Serviço]
ExecStart = bash -c 'sleep 10; notificar-enviar "Fazer um Backup" '
Type = oneshot
[Instalar]
WantedBy = sessão-gráfica.alvo

O código acima é bastante direto. Ele envia uma notificação “Faça um Backup” 10 segundos após a sessão gráfica ser carregada (uma vez a cada reinicialização ou login).

Execute os comandos abaixo para habilitar o serviço para que ele possa ser executado automaticamente a cada reinicialização.

$ chmod 644 ~ /.config / systemd / user / backup_reminder.serviço
$ systemctl --user enable backup_reminder.serviço
$ systemctl --user daemon-reload
$ reboot

Este é apenas um exemplo simples de execução de um comando básico na inicialização usando o systemd. Você também pode criar serviços avançados com várias condições e vários comandos. Para obter mais informações, consulte a página man do systemd executando o comando abaixo:

$ man systemd

Observe que este exemplo explica a criação de um novo serviço que não requer acesso root e é adequado para aplicativos de inicialização automática que não requerem permissões root. Se você deseja iniciar scripts automaticamente que requerem acesso root, você deve criar um novo serviço systemd no diretório “/ etc / systemd / system” em vez de “~ /.pasta config / systemd / user ”e omita a opção“ -user ”nos comandos mencionados acima.

Cron Job

Cron é uma ferramenta que pode executar tarefas programadas periodicamente de acordo com as condições especificadas por um usuário. Esses trabalhos programados são criados no Crontab em um formato pré-definido. Em termos simples, o Crontab diz ao Cron quais tarefas executar em que ponto do tempo.

Como o systemd, os trabalhos do crontab podem ser usados ​​para iniciar aplicativos e executar scripts automaticamente na inicialização. Para adicionar um novo cron job, execute o comando abaixo:

$ crontab -e

Adicione as seguintes linhas no final do arquivo de texto (inicia automaticamente o terminal GNOME em cada reinicialização):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 terminal gnome

Você pode usar seu próprio comando ou fornecer o caminho completo para um script de shell.

Observe que, ao contrário do systemd, o cron não pode detectar se a sessão gráfica foi carregada ou não. Você deve especificar algum período de espera estimado até que o servidor X carregue e um identificador de exibição. Você pode saber sobre seu ID de exibição executando o comando abaixo:

$ echo $ DISPLAY

O atraso antes da execução do comando ou script depende da configuração do seu sistema e do tempo de inicialização.

Rc.local

Outro método para executar scripts e comandos na inicialização é usar “rc.local ”arquivo. Observe que, em meus testes, não fui capaz de adiar a execução do script até que a sessão gráfica estivesse ao vivo. Adicionar qualquer atraso de suspensão leva a atrasar a exibição da própria tela de login. Por causa disso, não tive sucesso em executar aplicativos gráficos na inicialização usando rc.arquivo local. Editando rc.local também requer acesso root, ao contrário de todos os outros exemplos explicados acima.

Para adicionar comandos / scripts ao rc.arquivo local, execute o comando abaixo (cria um novo rc.arquivo local se não existir):

$ sudo nano / etc / rc.local

Adicione seus comandos entre “#! / bin / bash ”e“ exit 0 ”linhas, conforme mostrado abaixo:

#! / bin / bash
caminho / para / meu_script.sh
saída 0

Faça rc.executável de arquivo local executando o comando abaixo:

$ sudo chmod + x / etc / rc.local

Basta reiniciar para que o script de inicialização tenha efeito.

Conclusão

Estes são alguns métodos que podem ser usados ​​para executar scripts e aplicativos automaticamente na inicialização. Se você deseja executar scripts que não requerem acesso root, eu recomendaria usar o aplicativo GUI “Aplicativos de inicialização”. Se você deseja executar aplicativos e scripts com acesso root, sugiro que você crie um serviço systemd de nível de sistema.

Sobre o autor

Nitesh Kumar

Sou um desenvolvedor de software freelancer e redator de conteúdo que adora Linux, software de código aberto e a comunidade de software livre.

Ver todas as postagens
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...