2013-03-27 4 views
7

laufen Ich lerne Meteorjs und ich habe eine kleine Fernbedienung VPS.Wie man Meteor beim Start auf Ubuntu-Server

Ich möchte:

  1. Set Auto ziehen von Git Repository mein Meteor-Projekt.
  2. Setzen Sie Skript in Autostart, die mein Meteor-Projekt als Dienst ausführen.

Zum Beispiel

meteor run -p 80 -- production 

Mein Server ist Ubuntu 12.04

Antwort

13

sollten Sie Ubuntu Art und Weise verwenden, die Upstart ist:

http://upstart.ubuntu.com/ http://manpages.ubuntu.com/manpages/lucid/man5/init.5.html

Wie Daemon Job zu definieren, :

http://newcome.wordpress.com/2012/02/26/running-programs-as-linux-daemons-using-upstart/

Hoffe, es hilft :)

Ihre Emporkömmling Datei wäre mehr oder weniger:

# meteorjs - meteorjs job file 

description "MeteorJS" 
author "Igor S" 

# When to start the service 
start on runlevel [2345] 

# When to stop the service 
stop on runlevel [016] 

# Automatically restart process if crashed 
respawn 

# Essentially lets upstart know the process will detach itself to the background 
expect fork 

# Run before process 
pre-start script 
     cd PATH_TO_METEOR_APP 
     echo "" 
end script 

# Start the process 
exec meteor run -p 80 --help -- production 
+0

Wie starte ich einen Meteoriten beim Start mit Mac OSX? – crapthings

+0

Thx. Seine Arbeit gut –

+2

Was ist 'exec myprocess'? – gor

1

Dies ist meine meteorjs.conf Datei - funktioniert einwandfrei. Ich hatte alle Probleme zuvor beschrieben, aber diese Variante behebt sie. Hoffe, dass es jemand hilft :)

Alle EXPORT Variablen I von printenv bekam

# meteorjs - meteorjs job file 

description "MeteorJS" 
author "Alex Babichev" 

# When to start the service 
start on runlevel [2345] 

# When to stop the service 
stop on runlevel [016] 

# Automatically restart process if crashed 
respawn 

# Essentially lets upstart know the process will detach itself to the background 
expect fork 

chdir /home/dev/www/test 

script 

export MONGO_URL=mongodb://localhost:27017/meteor 
export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
export PWD=/home/sputnik 
export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript 
export HOME=/home/sputnik 

echo "---- start ----" 
cd /home/dev/www/test 
exec mrt 

end script 
+0

Die Mongo-URL nicht bestanden und letzte Zeile geändert für: 'exec meteor -p domain.com : 8080' musste auch 'chmod + x/etc/init/meteorjs.conf' und es funktioniert super :) Thx – Guidouil

+0

' env HOME =/home/sputnik' wenn du kein Skript in deinem Skript magst. –

4

Hier ist, was ich tue:

description "meteor app server" 
start on runlevel [2345] 
stop on runlevel [06] 
respawn 
respawn limit 10 5 
pre-start script 
    set -e 
    rm -f /path/to/your/app/.meteor/local/db/mongod.lock 
end script 
exec /bin/su - ec2-user -c '/path/to/your/app/meteor_server.sh' 
post-stop script 
    pkill -f meteor 
end script 

Das meteor_server.sh Skript enthält:

cd /path/to/your/app/; meteor run -p 3000 --production 

Stellen Sie sicher, chmod +x das meteor_server.sh Skript und ändern Sie den Pfad zu Ihrer App in den 3 Standorten. Das Skript tötet auch alle Meteor-Aufgaben, wenn es gestoppt wird, so dass es nur eine einzige Meteor-App auf Ihrem Server laufen lässt. Ich habe eine Meteor-App, die auf diese Weise schnell mit nginx läuft, aber Knoten scheint viel Speicher zu verbrauchen.

Verwandte Themen