2016-11-23 17 views
-1

VagrantにStackEditをインストールしました。ワンクリックでVagrantとStackEditを開始したいと思います。 私はbashスクリプト作成:私はSSHてmanualyすべての作品を通じてstart_server.shを実行する場合、私は起動スクリプトでのsshでそれをしようとすると、VMVagrant VMを起動し、Node.jsスクリプトをシェルスクリプトで起動します。

if [ $(ps -e|grep node|wc -l) = "0" ] ; then 
    (export PORT=5000 && node Code/Project/public/stackedit/server.js) & 
fi 
sleep 5 

exit 0 

#!/bin/bash 

vagrant up 

#ssh -p 2222 -i /d/stackedit/.vagrant/machines/default/virtualbox/private_key [email protected] -t '/home/vagrant/Code/start_server.sh' 

start "C:\Program Files\Mozilla Firefox\firefox.exe" http://stackedit.app:5000 

start_server.shを - 今コメント行 - サーバー実行されません。

このスクリプトを/ect/rc.localにコピーしようとしましたが、結果は同じです。 @reboot /home/vagrant/Code/start_server.shcrontab -eに追加しようとしましたが、成功しませんでした。

誰でも手伝ってもらえますか?

私のシステムはWindows 10です。私はGit Bashを使用しています。

答えて

2

あなたVagrantfile

ランですべてを置く必要がありますが、shell provisioner

Vagrant.configure("2") do |config| 
    config.vm.provision "shell", path: "Code/start_server.sh" 
end 

チェックを使用してVagrantfileからスクリプトを実行することができます

のプロビジョニングは、デフォルトでいくつかのオプションを持っている、それはのように実行されますあなたのスクリプトを迷惑メールユーザーとして実行したい場合に変更することができます

Vagrant.configure("2") do |config| 
    config.vm.provision "shell", path: "Code/start_server.sh", privileged: false 
end 
を実行しているシステムの後にウェブサイトを開く

Vagrant.configure("2") do |config| 
    config.vm.provision "shell", path: "Code/start_server.sh", run: "always" 
end 

とも、あなたがVMを起動するたびにスクリプトを実行することを確認することができます(具体的provisionパラメータを呼び出すときに、デフォルトではそれは一度だけ実行されますか)

Vagrantfileはrubyスクリプトなので、ファイルから任意のコマンドを呼び出すことができますが、コマンドはすぐに実行されます。あなたはボックスが開始された後に実行したい場合は

その後、あなたはvagrant trigger pluginを使用して

Vagrant.configure(2) do |config| 
    ..... 
    config.trigger.after :up do 
    system("open", "http://stackedit.app:5000") 
    end 
end 
+0

ような何かを行うことができますあなたの答えをいただき、ありがとうございます。すべてがうまくいく! –

関連する問題