configurar uma interface, que eu quero sobreviver à reinicialização

configurar uma interface, que eu quero sobreviver à reinicialização

Quero configurar uma interface para a caixa virtual, que está instalada na minha máquina Ubuntu. Quando eu crio manualmente, funciona:

vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1

verificando ifconfig, está lá:

insira a descrição da imagem aqui

Quero fazer com que essas alterações sobrevivam a uma reinicialização e sejam definidas automaticamente durante a inicialização do sistema. Para isso, o que fiz foi:

sudo mkdir /opt/systemd/então sudo mkdir /opt/systemd/e sudo nano /opt/systemd/vboxhostonlycopie o seguinte código no arquivo:

#!/bin/bash
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1

então Ctrl + X para sair, Y para salvar e entrar para gravar o arquivo.

Então eu torno o arquivo executável

cd /opt/systemd/ then sudo chmod a+x vboxhostonly

eu crio um serviço então

sudo touch /etc/systemd/system/vboxhostonlynic.service

Então eu edito o arquivo digitando sudo nano /etc/systemd/system/vboxhostonlynic.servicee digitando:

Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot
ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target

então Ctrl + X para sair, Y para salvar e entrar para gravar o arquivo.

Agora, para instalar o serviço e garantir que ele carregue no momento da inicialização, digito:

systemctl daemon-reload
systemctl enable vboxhostonlynic.service

Mas quando eu reinicio a máquina a interface não está lá, qualquer ajuda seria apreciada?

Responder1

Seu bashscript não pode ser encontrado vboxmanageporque vboxmanagenão está em nenhum diretório do script $PATH. Tente usar o caminho completo para vboxmanage( type -p vboxmanage), mas talvez seja necessário mover mais partes do seu ambiente para o script.

Os trabalhos executados por meio de systemdscripts de inicialização não são executados no mesmo ambiente de execução que você tem na área de trabalho. systemdscripts de inicialização são executados como arquivos root. Nenhuma das suas PATHalterações ou outras configurações de variáveis ​​de ambiente ~/.bashrcsão propagadas automaticamente para o seu systemdtrabalho. Por exemplo, não existe $DISPLAY, então os programas GUI precisam de tratamento especial (leia man xhost). Outras variáveis ​​de ambiente necessárias também podem precisar de ajuda.

Veja os resultados echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";aliasem cada um dos seus ambientes.

informação relacionada