首页 > 解决方案 > 如何使用批处理文件运行 Vagrant 命令,但完成后让我连接到 Vagrant?

问题描述

到目前为止,这是我在批处理文件中的内容:

set root="C:\Users\esohlberg\lwebsite"
cd %root%
vagrant up
vagrant ssh -- -t "source lw/bin/activate && cd /vagrant/; ./manage.py runserver 0.0.0.0:8000"
cmd /k

一旦 Vagrant 启动,我激活一个 virtualenv,cd 到正确的位置,然后运行一个服务器。执行此操作将我一直带到正在运行的服务器,在那里我可以看到

System check identified no issues (0 silenced).
August 24, 2018 - 12:33:12
Django version 2.0.3, using settings 'lwebsite.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

但是,一旦我用 CONTROL-C 退出,我就会看到

Connection to 127.0.0.1 closed.

而且我不再是流浪者。是否可以以这样一种方式设置命令,即一旦服务器退出,我会留在 /vagrant/ 目录中,连接仍然正常,Vagrant 的 virtualenv 仍然处于活动状态?这将使我能够更轻松地管理站点或再次运行服务器。

我已经查看了https://www.vagrantup.com/docs/provisioning/shell.html,但是这些示例似乎显示了仅在配置期间执行的命令,我不想每次执行时都这样做文件。

标签: djangobatch-filevagrant

解决方案


我创建了三个 .bat 文件来启动、停止 vagrant 并通过 ssh 连接。

为了启动 vagrant,还添加了这个以在 Windows 启动时自动运行:

cd /d "C:\Homestead"
start vagrant up

为了阻止流浪者:

@echo off
cd /d "C:\Homestead"
start vagrant halt

并通过 ssh 连接到本地服务器

cd /d "C:\Homestead"
vagrant ssh

推荐阅读