У меня установлен phantomjs, и я хочу запустить phantom-сервер при запуске сервера (Ubuntu).
В настоящее время я работаю локально на Ubuntu 14.04, а сервер, на котором он будет развернут, - это также Ubuntu 14.04.
Это то, что я до сих пор:
скрипт upstart:
# /etc/init/phantomjs.conf
start on startup
exec '/path/to/script/to/start/server.bash'
скрипт bash для запуска фантомного сервера: [!d4 ]
#/path/to/script/to/start/server.bash
#!/bin/bash
phantomjs /path/to/the/server.js -host 127.0.0.1 -port 1337
Когда я обычно запускаю сервер из командной строки, он работает так, как ожидалось.
Когда я запускаю сценарий выскочки, он выводит OK, PhantomJS is ready в файл журнала, но когда я делать запросы на почту, ничего больше не происходит. Я бы ожидал, что он будет выводить что-то в журнал каждый раз, когда я делаю запрос, например, когда я запускаю его из командной строки, но, похоже, он просто запускает сервер, а затем ничего больше.
Вы можете просто использовать строфу console log, чтобы иметь журналы, хранящиеся в / var / log / upstart. консольный журнал фактически является значением по умолчанию, поэтому они должны появляться там с этим заданием автоматически:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec phantomjs /path/to/the/server.js -host 127.0.0.1 -port 1337
Я не сбрасывал респауна limti, поскольку тот, который использовал Stef, немного агрессивный и может привести к Upstart изматывая респаун (постоянно делайте это, хотя, вероятно, лучше просто сдаться).
Сохраните следующее задание в /etc/init/ как myphantomjs.conf
description 'phantomjs'
start on runlevel [2345]
stop on runlevel [06]
respawn
# in case of failure retry 3 times to respawn with 5 sec interval
respawn limit 3 5
# set some variables
env SERVER=/path/to/the/server.js
env HOST=127.0.0.1
env PORT=1337
# enable logger output and write to syslog with tag phantomjs
# for more info see http://upstart.ubuntu.com/cookbook/#id152
# and/or type logger --help
console output
# execute the command and log it
exec phantomjs $SERVER -host $HOST -port $PORT | logger -s -t "phantomjs: "