
Ich möchte eine Schnittstelle für die virtuelle Box konfigurieren, die auf meinem Ubuntu-Rechner installiert ist. Wenn ich sie manuell erstelle, funktioniert es:
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
durch Überprüfen von ifconfig. Es ist da:
Ich möchte, dass diese Änderungen auch nach einem Neustart bestehen bleiben und beim Systemstart automatisch vorgenommen werden. Dazu habe ich Folgendes getan:
sudo mkdir /opt/systemd/
dann
sudo mkdir /opt/systemd/
dann
sudo nano /opt/systemd/vboxhostonly
und kopiere den folgenden Code in die Datei:
#!/bin/bash
vboxmanage hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
dann Strg + X zum Beenden, Y zum Speichern und Eingabe zum Schreiben der Datei.
Dann mache ich die Datei ausführbar
cd /opt/systemd/ then sudo chmod a+x vboxhostonly
ich erstelle einen Dienst, damit
sudo touch /etc/systemd/system/vboxhostonlynic.service
Dann bearbeite ich die Datei, indem ich Folgendes eingebe sudo nano /etc/systemd/system/vboxhostonlynic.service
und dann Folgendes eintippe:
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot
ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target
dann Strg + X zum Beenden, Y zum Speichern und Eingabe zum Schreiben der Datei.
Um nun den Dienst zu installieren und sicherzustellen, dass er beim Booten geladen wird, gebe ich Folgendes ein:
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
Aber wenn ich die Maschine neu starte, ist die Schnittstelle nicht da. Ich wäre für jede Hilfe dankbar.
Antwort1
Ihr bash
Skript kann nicht finden vboxmanage
, da vboxmanage
es sich in keinem Verzeichnis des Skripts befindet $PATH
. Versuchen Sie, den vollständigen Pfad zu vboxmanage
( type -p vboxmanage
) zu verwenden, aber Sie müssen möglicherweise mehr von Ihrer Umgebung in das Skript verschieben.
Über Startskripte ausgeführte Jobs systemd
werden nicht in derselben Laufzeitumgebung ausgeführt, die Sie auf Ihrem Desktop haben. systemd
Startskripte werden als ausgeführt root
. Keine Ihrer PATH
Änderungen oder anderen Einstellungen von Umgebungsvariablen ~/.bashrc
werden automatisch an Ihren Job weitergegeben systemd
. Beispielsweise gibt es keine $DISPLAY
, daher benötigen GUI-Programme eine spezielle Behandlung (lesen Sie man xhost
). Andere benötigte Umgebungsvariablen benötigen möglicherweise ebenfalls Hilfe.
Sehen Sie sich die Ergebnisse echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
in jeder Ihrer Umgebungen an.