残ったもの

残ったもの

客観的

VBoxManage startvm MyVM --type headlessサービス (postgres、apache) と同じように、ブート システムでこのコマンドを実行したいと思います。

私が試したこと

1. 私はサービス使用してscで指示

インターネットで解決策になりそうなものを見つけたので、以下のバージョンをすべて試しました:

  • sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless"

  • sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"

成功しなかったため、コマンドの詳細な出力を抑制しようとしました

  • sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless > NUL"

  • sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"

まだ結果が出ません。このバージョンはすべて1053エラー。最後の呼び出しは、Virtualboxコマンドをパスに追加することでした


  • sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless"

  • sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless"

出力を抑制する

  • sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless > NUL"

  • sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless > NUL"

必ずしも良い結果が出るとは限らない1053エラー。

2. コンピュータの起動スクリプトを割り当てる

私はこれに従いましたチュートリアル最後の望みをかけて試みましたが、失敗しました。

残ったもの

Visual Studioをダウンロードして、関連する何かを試してみようと思っています。サービスプロジェクトを作成する


それで、皆さん、私の間違いはどこにあるのでしょうか? 私に希望はあるのでしょうか?


よくある質問

  1. OSをLinuxに切り替えることはできますか?

    • いいえ、それは問題外です。
  2. システムと同時にこの VM を起動する必要があるのはなぜですか?

    • 残念ながら、この Windows 7 ホストは、VM 上で実行されるアプリケーション用の小さなサーバーです。このマシンは私のものではなく、デプロイを行うために私に与えられた唯一のオプションです。
  3. Windows ホスト内でアプリケーションのデプロイを行わないのはなぜですか?

    • 私は PHP や .NET を実行していないので、いいえ。

答え1

私は走るNSSM

次のようなプロンプトで NSSM サービスを作成します。

  1. nssm/win64/nssm.exe install vbox

  2. 画像のように exec VBoxHeadless.exe を選択します:

    NSSM インストール サービス

  3. ログオン時に Windows アカウントを使用する (これは非常に重要です)

  4. インストールサービス

私にとってはうまくいきます。

答え2

最初にログインする必要なく、VBoxManager コマンドを使用して VM をサービスとして起動するメカニズムを見つけることができませんでした。

次のツールを使用して、Ubuntu Server VM をサービスとして実行できるようにしましたVBoxVmServicehttps://github.com/onlyfang/VBoxVmService

簡単な説明: VBoxVmService は、ネイティブ Windows サービス エンティティ内から Oracle の VirtualBox VM を実行できる Windows アプリケーションです。

これを必要とする主な理由は、誰もログインしなくても VM を起動するためです。私のは開発者用ワークステーションなので、更新のために再起動されますが、誰かに促されるまで VM を起動するのを忘れてしまうことがあります。

仕組みは次のとおりです:

  • まず、必要な VM が起動し、エラーなく正常に動作することを手動で確認します。そうしないと、ログを調べてデバッグするのが難しくなります。

  • インストールするとVMBoxServiceWindowsサービスとして実行可能になります

  • 設定INIファイルを編集します(参照ここ完全なドキュメント付きサンプルについては

  • マシンを再起動するか、VMBoxService'sインストールされたWindowsサービスを起動します

  • 以下はサンプルINIです

    [Settings]
    VBOX_USER_HOME=C:\Users\YOUR_NAME_HERE\.VirtualBox
    PauseShutdown=8000
    [Vm0]
    VmName=ubuntu-server                                              
    ShutdownMethod=savestate                                    
    AutoStart=yes
    

更新: Win 10 以降のみサポート

関連情報