「 Linux 开源指北 」好厨子好菜好下饭
整理 | 猿胖子
出品 | 猿武场(ID:apesarena)
关注公众号并回复数字「 1024 」加入猿武场社群
某些特定场景下需要开机启动特定虚拟机(尤其WIN平台)虽然可以采用更为便捷的容器(Docker)方式来跑一些服务,但这里还是以VirtualBox虚拟机的方式实现。
Windows 平台方案
新建BAT脚本文件,auto_alp(虚拟机名).bat 文件命名随意即可,在创建好的脚本文件中添加如下内容。
@ECHO OFF
// ALP为虚拟机名称
VBoxManage.exe startvm ALP(虚拟机名) --type headless
EXIT
第一步:将BAT脚本文件放到Virtualbox安装目录下
默认的安装目录为:"C:\Program Files\Oracle\VirtualBox",这里以实际安装目录为准。
第二步:打开"任务计划程序",创建一个计划任务
1. 在左下角开始菜单中搜索并打开"任务计划程序",点击右侧"创建任务"的安装目录
2. 常规页签中填入名称: ALP(虚拟机名,自定义即可)
3. 安全选项勾选"不管用户是否登录都要运行",勾选"使用最高权限运行"
4. 切换到"触发器"页签,点击新建,选择"在系统启动时",确认
5. 切换到"操作"页签,点击新建,选择"启动程序",点击浏览选择auto_alp(虚拟机名).bat脚本文件
起始于填入脚本所在路径,笔者这里默认为"C:\Program Files\Oracle\VirtualBox"(重点)不填入将无法启动脚本
6. 切切换到"条件"页签,取消勾选"电源"中的两个选项
完成后重启电脑,查看 virtualbox 虚拟机已经显示运行中。
Linux平台方案
1. 在 etc/default/virtualbox 中添加如下内容
# Auto Starting VMs
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
[Unit]
Description=vm1
After=network.target virtualbox.service
Before=runlevel2.target shutdown.target
[Service]
User=用户名
Group=vboxusers
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPid=no
RemainAfterExit=yes
// ========== 主要是修改这里 ==========
ExecStart=/usr/bin/VBoxManage startvm 虚拟机名 --type headless
ExecStop=/usr/bin/VBoxManage controlvm 虚拟机名 acpipowerbutton
// ========== 主要是修改这里 ==========
[Install]
WantedBy=multi-user.target
// 设置开机启动
sudo systemctl daemon-reload
sudo systemctl enable auto_alp // 步骤2中设置的服务名
// 取消开机启动
sudo systemctl disable auto_alp // 步骤2中设置的服务名
文章转载自猿武场,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。