Ubuntu 8.04 Hardy и скрипт upstart для node.js - PullRequest
2 голосов
/ 25 сентября 2011

Я пытаюсь написать сценарий upstart для моего компьютера с Ubuntu, версия 8.04 "Hardy". Я следовал инструкциям на этом сайте: upstart для node.js , но похоже, что эти инструкции относятся к текущей версии Ubuntu.

Я заметил, что каталог / etc / init не существует на моем компьютере, сначала я попытался поместить скрипт в каталог /etc/init.d, а затем я создал каталог / etc / init и поместил его туда.

Я опубликую свой скрипт выскочки ниже (который в основном такой же, как на сайте выше, с некоторыми изменениями пути), но когда я запускаю startname, я просто получаю сообщение об ошибке: start: Unknown job: jobname. Затем я изменил сценарий на уменьшенную версию, опубликованную ниже, и все равно получаю тот же результат.

На данный момент я использую команду nohup для запуска моего сервера узлов, но я бы хотел более постоянное решение.

Пожалуйста, помогите?

СЦЕНАРИЙ 1:

description "node.js chat server"
author      "iandev ith3"

# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
    # Not sure why $HOME is needed, but we found that it is:
    export HOME="/root"

    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script

post-start script
   # optionally put a script here that will notifiy you node has (re)started
   # /root/bin/hoptoad.sh "node.js has started!"
end script

СЦЕНАРИЙ 2:

description "node.js chat server"
author      "iandev ith3"

script
    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script

Ответы [ 3 ]

3 голосов
/ 25 сентября 2011

Просто используйте навсегда. https://github.com/indexzero/forever

1 голос
/ 04 ноября 2011

Возможно, не лучший способ запустить процесс с помощью sudo, но вот что я настроил на своем локальном компьютере:

#!upstart
description "node.js server"
author      "alessio"

start on startup
stop on shutdown

script
    export HOME="/ubuntu"

    exec sudo -u ubuntu /usr/bin/node /home/ubuntu/www/test.js 2>&1 >> /var/log/node.log
end script

Надеюсь, это поможет.

1 голос
/ 25 сентября 2011

Посмотрев на предоставленный вами веб-сайт, я бы сказал, что / etc / init была просто опечаткой, и это должен быть /etc/init.d/. Некоторые вещи, которые вы можете захотеть проверить:

  • исполняемый флаг на ваших скриптах. В большинстве версий исполняемые файлы Ubuntu отображаются зеленым при запуске команды «ls» из командной строки. Если вы хотите проверить, является ли ваш файл исполняемым, запустите 'ls -l /etc/init.d/YOUR_SCRIPT' из командной строки. Вы увидите что-то вроде этого: -rwxr-xr-x 1 root root 1342 2010-09-16 10:13 YOUR_SCRIPT Х означает, что это исполняемый файл. Чтобы установить исполняемый флаг, если он не установлен, выполните команду chmod u + x YOUR_SCRIPT

  • Я вполне уверен, что для более старых версий Ubuntu вам нужно иметь скрипт в /etc/rc.d/rc3.d или /etc/rc3.d. Линукс выполняет через rc0.d до rc5.d и выполняет каждый скрипт там. Судя по всему, Ubuntu отходит от этого к чему-то более простому, поэтому, если у вас есть каталоги rc, вам может понадобиться немного отредактировать ваш скрипт.

Во всяком случае, я думаю, что я немного усложняюсь здесь. Проверьте свой исполняемый флаг, и если у вас есть каталоги rc, и мы будем двигаться дальше.

...