Node.js Навсегда новомодная остановка сценария зависает

Я использую Ubuntu 14.04 с Node.js, установленным на .nvm и направлении проекта в соответствии с моим корневым каталогом.

Я пытаюсь запустить скрипт как я bill во время начальной загрузки. И имейте способность перезапустить и остановить сценарий.

Я использую npm модуль forever выполнять это. Одна вещь, которую я нахожу, состоит в том, что сценарий просто зависает, когда я выхожу sudo stop myapp

в/etc/init/myapp.conf

#!upstart

description "My Node app"

start on filesystem and started networking
stop on shutdown

# You need this so Upstart reports the proper process ID of Node and not Forever.
expect fork

# Monitor Forever
respawn
respawn limit 5 30

# Node paths (change to suit your installation)
# The full path to the directory containing the node and forever binaries.
env NODE_BIN_DIR="/home/bill/.nvm/v0.10.30/bin"

# Set the NODE_PATH to the Node.js main node_modules directory
env NODE_PATH="/home/bill/.nvm/v0.10.30/lib/node_modules"

# The main file that starts our app (usually called server.js or app.js)
env APPLICATION_PATH="/home/bill/project/bin/www"

# Process ID file path
env PIDFILE="~/bill.pid"

# Log file path
env LOG="~/bill.log"

# Forever settings to prevent the application spinning up constantly if it fails on launch.
env MIN_UPTIME="5000"
env SPIN_SLEEP_TIME="2000"

script
    # Add our Node stuff to the main path
    PATH=$NODE_BIN_DIR:$PATH

    exec su -c "forever --pidFile $PIDFILE -a -l $LOG --minUptime $MIN_UPTIME --spinSleepTime $SPIN_SLEEP_TIME start $APPLICATION_PATH" - bill
end script

pre-stop script
    PATH=$NODE_BIN_DIR:$PATH
    exec su -c "forever stop $APPLICATION_PATH" - bill
end script
0
задан 5 September 2014 в 02:36
1 ответ

Use

setuid bill

as a Upstart stanza (просто поместите эти слова в новую строку в файле) и удалите su вещи. su откроет новый процесс, и Upstart не будет отслеживать правильный PID, поэтому вам не нужно использовать su.

.
1
ответ дан 4 December 2019 в 17:11

Теги

Похожие вопросы