
Quiero configurar una interfaz para la caja virtual, que está instalada en mi máquina Ubuntu. Cuando lo creo manualmente funciona:
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
Al marcar ifconfig, está ahí:
Quiero que estos cambios sobrevivan al reinicio y se configuren automáticamente durante el inicio del sistema. Para eso, lo que hice fue:
sudo mkdir /opt/systemd/
luego
sudo mkdir /opt/systemd/
luego
sudo nano /opt/systemd/vboxhostonly
y copie el siguiente código en el archivo:
#!/bin/bash
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
luego Ctrl + X para salir, Y para guardar e ingresar para escribir el archivo.
Luego hago el archivo ejecutable.
cd /opt/systemd/ then sudo chmod a+x vboxhostonly
el creo un servicio para que
sudo touch /etc/systemd/system/vboxhostonlynic.service
Luego edito el archivo escribiendo sudo nano /etc/systemd/system/vboxhostonlynic.service
y luego escribiendo:
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot
ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target
luego Ctrl + X para salir, Y para guardar e ingresar para escribir el archivo.
Ahora, para instalar el servicio y asegurarme de que se carga en el momento del arranque, escribo:
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
Pero cuando reinicio la máquina, la interfaz no aparece, ¿agradecería alguna ayuda?
Respuesta1
Su bash
script no puede encontrarlo vboxmanage
porque vboxmanage
no está en ningún directorio del archivo $PATH
. Intente utilizar la ruta completa a vboxmanage
( type -p vboxmanage
), pero es posible que tenga que mover más parte de su entorno al script.
Los trabajos que se ejecutan mediante systemd
secuencias de comandos de inicio no se ejecutan en el mismo entorno de ejecución que tiene en su escritorio. systemd
Los scripts de inicio se ejecutan como root
. Ninguno de sus PATH
cambios u otras configuraciones de variables de entorno ~/.bashrc
se propagan automáticamente a su systemd
trabajo. Por ejemplo, no existe $DISPLAY
, por lo que los programas GUI necesitan un tratamiento especial (leer man xhost
). Es posible que otras variables de entorno necesarias también necesiten ayuda.
Mira los resultados de echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
en cada uno de tus entornos.