Làm cách nào tôi có thể có được Vagrant để khởi động máy chủ khi khởi động?


29

Tôi muốn Vagrant khởi động máy chủ Play trong thư mục / vagrant / mỗi khi tôi thực hiện. Đặt @reboot trên crontab không hoạt động vì tập lệnh chạy trước khi thư mục / vagrant / được kết nối.

Câu trả lời:


16

Thay vì sử dụng crontab, bạn đã thử sử dụng Upstart chưa?

Vagrant phát ra một sự kiện "được gắn kết" khi thư mục dùng chung được gắn kết, do đó bạn có thể tạo một tệp conf upstart, giả sử /etc/init/play.conf, để chạy khi sự kiện đó được phát ra:

description "Play server"
start on vagrant-mounted

pre-start script
    [ "$MOUNTPOINT" == "/vagrant" ] || stop
end script

... rest of config file for starting Play server ...

Cảm ơn! Không chắc chắn tại sao tôi nhận được lỗi /bin/sh: 1: [: =: unexpected operator, vì vậy tôi chỉ bỏ sót dòng đó.
tên người dùng sai

Rất tiếc! Tôi chỉnh sửa bài để cú pháp đúng.
billyw

Có thể start on vagrant-mounted MOUNTPOINT=/vagrantlàm việc tốt không?
km6zla

Đối với kịch bản mới nổi của tôi start on vagrant-mountedkhông hoạt động vì một số lý do. Không biết tại sao và không biết cách gỡ lỗi.
maectpo

44

Tôi tìm thấy bằng cách sử dụng một nhà cung cấp mơ hồ riêng biệt với tùy chọn run : "always"dễ dàng hơn nhiều, ví dụ:

config.vm.provision :shell, path: "yourStartUp.sh", run: "always", privileged: false

Xem https://docs.vagrantup.com/v2/provisioning/shell.html để biết tài liệu đầy đủ.


3
Liên kết được cung cấp không nói gì về "always". Có lẽ điều này đã được gỡ bỏ trong một phiên bản mới hơn.
Rafael Eyng

6
@RafaelEyng các tài liệu cho nó có tại vagrantup.com/docs/provisioning/basic_usage.html , tìm kiếm "CHẠY MỘT LẦN HOẶC LUÔN"
Daniel Compton

Thi lại vào năm 2017. Hoạt động như một lá bùa. Đây là câu trả lời tốt nhất và vẫn cập nhật.
iaforek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.