настроить интерфейс, который я хочу сохранить после перезагрузки

настроить интерфейс, который я хочу сохранить после перезагрузки

Я хочу настроить интерфейс для виртуального ящика, который установлен на моей машине Ubuntu. Когда я создаю его вручную, это работает:

vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1

проверив ifconfig, он там есть:

введите описание изображения здесь

Я хочу, чтобы эти изменения сохранились после перезагрузки и применялись автоматически при запуске системы. Для этого я сделал следующее:

sudo mkdir /opt/systemd/затем sudo mkdir /opt/systemd/и sudo nano /opt/systemd/vboxhostonlyскопируйте следующий код в файл:

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

затем Ctrl + X для выхода, Y для сохранения и Enter для записи файла.

Затем я делаю файл исполняемым.

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

Я создаю услугу, поэтому

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

Затем я редактирую файл, набрав sudo nano /etc/systemd/system/vboxhostonlynic.serviceи введя:

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

затем Ctrl + X для выхода, Y для сохранения и Enter для записи файла.

Теперь, чтобы установить службу и убедиться, что она загружается при загрузке системы, я ввожу:

systemctl daemon-reload
systemctl enable vboxhostonlynic.service

Но когда я перезагружаю машину, интерфейса нет, любая помощь будет оценена?

решение1

Ваш bashскрипт не может найти vboxmanage, поскольку vboxmanageне находится ни в одном каталоге в скрипте $PATH. Попробуйте использовать полный путь к vboxmanage( type -p vboxmanage), но вам, возможно, придется переместить больше вашей среды в скрипт.

Задания, запускаемые через systemdсценарии запуска, не запускаются в той же среде выполнения, что и на вашем рабочем столе. systemdсценарии запуска запускаются как root. Ни одно из ваших PATHизменений или других настроек переменных среды из ~/.bashrcне распространяется автоматически на ваше systemdзадание. Например, нет $DISPLAY, поэтому программы с графическим интерфейсом пользователя требуют особого обращения (читайте man xhost). Другие необходимые переменные среды также могут нуждаться в помощи.

Посмотрите на результаты echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";aliasв каждой из ваших сред.

Связанный контент