Como eu configuro um script para rodar no FreeBSD?

10

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

user23809
fonte

Respostas:

11

O FreeBSD cronentende a @rebootdiretiva de tempo, então você pode realmente cronexecutar seu script na inicialização. Em vez dos 5 campos de tempo usuais, sua crontabentrada pode ser assim:

@reboot /path/to/script

Se você também quiser executar a verificação quando você log in, adicione uma chamada para o script no arquivo de seus executa shell após o login - este poderia ser, dependendo do seu shell, ~/.login, ~/.bash_login, etc.

D_Bye
fonte
4

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

Em outras palavras, para executar um script na inicialização do FreeBSD 11 (ou 10?) E provavelmente mais recente, coloque um shell script executável com a extensão .sh nesta pasta para executá-lo na inicialização:

/usr/local/etc/rc.d/

Pode ser necessário criar a rc.dpasta se ela não existir.

Consulte http://www.defcon1.org/html/rc-local.html para obter detalhes.

Steve HHH
fonte
3

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

arqueado
fonte
1
Embora man rcdiga "Normalmente, o mecanismo /usr/local/etc/rc.d/ é usado em vez do rc.local hoje em dia, mas se você deseja usar o rc.local, ele ainda é suportado. Nesse caso, ele deve / etc / rc.conf e contém código de inicialização personalizado adicional para o seu sistema.A melhor maneira de manipular o rc.local, no entanto, é separá-lo em scripts rc.d / style e colocá-los em / usr / local / etc / rc .d /. "
Zezollo