Como executar um comando simples na inicialização do FreeBSD?

4

Eu preciso executar um comando muito simples na inicialização da minha máquina usando o FreeBSD:

cd /home/portal
mv portal.sqlite corrupt_portal.sqlite

Isso claramente não é um daemon ou um serviço, apenas um comando único a cada inicialização.

Eu tentei colocar um arquivo .sh em /usr/local/etc/rc.d/ com #!/bin/bash e ele não faz nada, eu também tentei simplesmente escrever touch testfile Se eu executo as duas versões manualmente, elas funcionam sem problemas.

O que estou perdendo aqui?

    
por Sandro Antonucci 11.09.2018 / 09:42

2 respostas

4

O O script rc (8) é responsável por executar o processo de inicialização automática, e a seção de exemplo do manual fornece um modelo simples para o diretório /etc/rc.d/ . Leia o rc.subr (8) página de manual para mais orientações sobre como escrever scripts de inicialização.

No entanto, um dos estágios finais do processo de inicialização automática é ler um arquivo de script chamado /etc/rc.local (se existir). Este arquivo não requer formatação ou palavras-chave especiais ou o conjunto de bits de execução.

Na página de manual rc(8) :

Typically, the /usr/local/etc/rc.d/ mechanism is used instead of rc.local these days but if you want to use rc.local, it is still supported.

    
por 11.09.2018 / 10:35
1

A maneira mais fácil é colocar esse comando no crontab .
Em vez dos primeiros cinco campos normalmente preenchidos por asteriscos, você pode colocar o token especial @reboot

@reboot root:wheel /path/to/the/command [args ...] 

Este comando será iniciado toda vez que o sistema for reinicializado.

    
por 11.09.2018 / 11:06