再起動後も維持したいインターフェースを設定する

再起動後も維持したいインターフェースを設定する

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へのフルパスを使用してみてください。ただし、環境のさらに多くの部分をスクリプトに移動する必要があるかもしれません。vboxmanagetype -p vboxmanage

スタートアップ スクリプトを通じて実行されるジョブは、systemdデスクトップにあるのと同じランタイム環境では実行されません。systemdスタートアップ スクリプトは として実行されますrootPATHからの変更やその他の環境変数設定は、ジョブ~/.bashrcに自動的には反映されませんsystemd。たとえば、 は存在しない$DISPLAYため、GUI プログラムは特別な処理 ( を参照) が必要ですman xhost。その他の必要な環境変数にもヘルプが必要な場合があります。

echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";aliasそれぞれの環境での結果を確認します 。

関連情報