Executar comando no arranque/reboot

Dr_Lion

Power Member
Boas noites deuses deste sistema magnífico que é o linux,

estou com um pequeno problema que me está a consumir. Já o fiz algumas vezes (com outros serviços, mas agora não estou a conseguir. COmo o título indica queria colocar um serviço a ser lançado de raíz sem ser necessária a minha intervenção, ou sequer logar na máquina.

O serviço é o OpenVpn, e o SO é Ubuntu 16.04!


Já tentei o método systemctl daemon-reload!
já tentei o /etc/default/openvpn e descomentar AUTOSTART
Já tentei uma crontab @reboot....


Estou farto de pesquisar no google, e só chego a becos sem saída que não funcionam, ou formas de configurar o cliente, eu estou a tentar configurar o arranque automático do servidor!!!

Não sei o que possa ser, ás tantas alguma permissão errada num ficheiro, ou um caminho, não estou a conseguir chegar lá, será que alguém conseguiria ajudar?

De notar que pela consola consigo lançar o processo, usando o comando
Código:
$ sudo service openvpn@server start
bem como de outras formas diferentes que iniciam de igual forma o processo, e consigo-me ligar à VPN.

Fico muito agradecido.
 
Tens de meter o script de execução no caminho /etc/rc.... , o rc file path faz uma ligação ao init e através disso lança programas e serviços no boot antes do login em sí o autostart é para as contas de usuários.

"The scripts in this directory are
executed once when booting the system, even when booting directly into
single user mode.

The scripts are all symbolic links whose targets are located in
/etc/init.d/ .

To disable a script in this directory, rename it so that it begins
with a 'K' and run 'update-rc.d script defaults' to update the order
using the script dependencies.

For more information see /etc/init.d/README.

"

Tens alguns exemplos em alguns fóruns → http://www.linuxquestions.org/quest...-3/howto-start-vncserver-before-login-177406/
 
Funcionou :)

Primeiro fiz um script (na home do utilizador) onde tinha o comando para lançar o serviço, dei as permissões e chamei o script no final do ficheiro rc.local (antes do exit 0) e funcionou como era suposto! Depois experimentei colocar o comando directo em vez de chamar o script exterior e também funcionou!
Tinha receio que não funcionasse por causa das variáeis de ambiente, e os diferentes caminhos para os serviços não estarem incluídos, se chamasse direto do rc.local, mas aparentemente funcionou,

Já agora mais uma questão, quando se faz este tipo de alterações, convém colocar-se os logs a irem para um ficheiro ao invés de ficarem no ar correto?

eu fiz de forma simplificada:

Código:
service openvpn@server start > /tmp/o.log &
mas já tenho visto coisas mais complexas do tipo /home/user/script.sh > /tmp/oo.log 2 > &1 &

Consegues explicar sucintamente o que significa esta sintaxe mais avançada, ou colocar um link para eu poder compreender melhor o funcionamento deste temática?

Desde já muito obrigado pela ajuda e paciência.
 
Back
Topo