Como eu defino um script que será executado na inicialização do FreeBSD?

8

Estou usando o FreeBSD 9 e quero fazer um script que verifique se um cabo Ethernet está conectado e, se estiver, se conecta a ele. Eu quero configurá-lo para que ele seja executado sempre que a máquina for iniciada, ou sempre que eu fizer o login. Eu olhei para o meu livro UNIX (É bem desatualizado e é para UNIX geral, não especificamente FreeBSD) e ele diz que eu posso usar crontab, mas eu só posso fazer isso para fazer as coisas funcionarem em determinados momentos, não quando ele é iniciado. Alguém pode me dizer como posso chegar a isso?

    
por user23809 26.09.2012 / 16:51

3 respostas

10

O cron do FreeBSD entende a diretiva @reboot time, então você pode ter cron executar seu script na inicialização. Em vez dos 5 campos de tempo usuais, sua entrada crontab pode ser assim:

@reboot /path/to/script

Se você quiser também executar a verificação ao efetuar login, adicione uma chamada ao script no arquivo que seu shell executa após o login - isto pode ser, dependendo do seu shell, ~/.login , ~/.bash_login , etc.

    
por 26.09.2012 / 17:09
3

Outra solução para o script de inicialização seria /etc/rc.local .

    
por 26.09.2012 / 17:14
3

No FreeBSD 11 para ARMv6 (Raspberry Pi), não consegui fazer com que a diretiva crontab @reboot trabalhasse para o usuário root, e o método "adicionar scripts ao arquivo /etc/rc.local " foi substituído por um mecanismo que executa automaticamente scripts localizados em /usr/local/etc/rc.d/ .

Em outras palavras, para executar um script na inicialização no FreeBSD 11 (ou 10?) e provavelmente mais recente, coloque um script de shell executável com a extensão .sh nesta pasta para que ele seja executado em boot:

/usr/local/etc/rc.d/

Você pode precisar criar a pasta rc.d , se ela não existir.

Consulte o link para obter detalhes.

    
por 26.02.2016 / 06:15