навсегда

  1. Монтаж
  2. использование
  3. Использование командной строки
  4. Файлы конфигурации JSON
  5. Файлы конфигурации нескольких приложений
  6. Использование в вашем коде
  7. forever.load (config)
  8. forever.start (файл, параметры)
  9. forever.startDaemon (файл, параметры)
  10. forever.stop (индекс)
  11. forever.stopAll (формат)
  12. forever.list (формат, обратный вызов)
  13. forever.tail (цель, параметры, обратный вызов)
  14. forever.cleanUp ()
  15. forever.cleanLogsSync (процессы)
  16. forever.startServer (monitor0, monitor1, ..., monitorN)
  17. Регистрация и расположение выходных файлов
  18. Выполнить тесты
  19. Лицензия: MIT

Простой инструмент CLI для обеспечения непрерывной работы данного сценария (т

Простой инструмент CLI для обеспечения непрерывной работы данного сценария (т. Е. Навсегда).

Монтаж


$ [sudo] npm установить навсегда -g

Примечание: если вы используете вечно программно, вы должны установить вечно-монитор ,


$ cd / path / to / your / project
$ [sudo] npm установить навсегда монитор

использование

Есть два способа использовать навсегда: через командную строку или навсегда в вашем коде. Примечание: если вы используете навсегда программно, вы должны установить вечно-монитор ,

Использование командной строки

Вы можете использовать forever для непрерывного запуска сценариев (независимо от того, написаны они в файле node.js или нет).

пример

навсегда запустить app.js

Опции

$ forever --help using: forever [действие] [параметры] SCRIPT [параметры сценария] Отслеживает сценарий, указанный в текущем процессе или в качестве действий демона: start Запустить SCRIPT как остановку демона Остановить SCRIPT демона по Id | Uid | Pid | Index | Scall stopall Остановить все запущенные сценарии навсегда, перезапустить. Перезапустить демон. Перезапуск SCRIPT. Перезапустить список всех запущенных сценариев. Навсегда. Перечислить все запущенные конфигурации сценариев навсегда. Перечисляет все навсегда конфигурацию пользователя, установленную <key> <val>. <key> Очищает указанный журнал навсегда config <key> Перечисляет файлы журналов для всех журналов процессов навсегда <script | index> Добавляет в журнал журналы для столбцов <script | index> add <col> Добавляет указанный столбец к выводу в списке `forever `columns rm <col> Удалил указанный столбец из выходных данных в наборе столбцов` forever list` set <cols> Установите все столбцы для выходных данных в `forever list` cleanlogs [CAREFUL] Удаляет все исторические опции файлов журнала навсегда: -m MAX Only запустить указанный скрипт MAX times -l LOG FILE Записывает вывод навсегда в LOGFILE -o OUTFILE Записывает вывод stdout из дочернего сценария в OUTFILE -e ERRFILE Записывает stderr из дочернего сценария в ERRFILE -p PATH Базовый путь для всех навсегда связанных файлов (pid-файлов и т. Д.) -C COMMAND COMMAND для выполнения (по умолчанию это узел) -a, --append Добавить журналы -f, --fifo Потоковые журналы в stdout -n, --number Количество строк журнала для печати --pidFile Файл pid --uid DEPRECATED. Process uid, полезный в качестве пространства имен для процессов (должен переноситься в строку), например, навсегда запустить --uid «production» app.js навсегда остановить производство --id DEPRECATED. Идентификатор процесса, аналогично uid, полезен в качестве пространства имен для процессов (должен переноситься в строку), например, навсегда начать --id "test" app.js навсегда остановить test --sourceDir Исходный каталог, для которого SCRIPT относится к --workingDir Рабочий каталог, в котором SCRIPT будет выполнять --minUptime Минимальное время безотказной работы (в миллисекундах), чтобы скрипт не считался «вращающимся» --spinSleepTime Время ожидания (в миллисекундах) между запусками вращающегося сценария. --colors --no-colors отключит раскраску вывода --plain Отключить цвета командной строки -d, --debug Заставляет навсегда регистрировать выходные данные отладки -v, --verbose Включает подробные сообщения Forever -s, --silent Запустите дочерний сценарий, заставляя stdout и stderr -w, --watch Следить за изменениями файлов. --WatchDirectory Каталог верхнего уровня для просмотра из --watchIgnore. Чтобы игнорировать шаблон при включенном наблюдении (допускается множественная опция) -t, --killTree Уничтожает все дочернее дерево процессов при `stop` --killSignal Поддержка настройки сигнала выхода (по умолчанию SIGKILL), используется для изящного перезапуска скрипта, например --killSignal = SIGTERM -h, --help Вы смотрите на него [Долгосрочный процесс ] Процесс навсегда продолжит вывод сообщений журнала на консоль. ех. forever -o out.log -e err.log my-script.js [Daemon] Процесс forever будет выполняться как демон, который заставит целевой процесс запускаться в фоновом режиме. Это чрезвычайно полезно для удаленного запуска простых сценариев node.js без использования nohup. Рекомендуется запускать с -o -l, & -e. ех. навсегда запустить -l навсегда.log -o out.log -e err.log my-daemon.js навсегда остановить my-daemon.js

Есть несколько примеров предназначен для проверки отказоустойчивости навсегда. Вот простой пример использования:


$ forever -m 5 примеров / error-on-timer.js

Файлы конфигурации JSON

В дополнение к бесконечной передаче пути к сценарию (наряду с сопутствующими параметрами, описанными выше), вы также можете навсегда передать путь к файлу JSON, содержащему эти параметры. Например, рассмотрим приложение со следующей файловой структурой:

, ├── навсегда │ └── development.json └── index.js // forever / development.json {// поддерживаются комментарии "uid": "app", "append": true, "watch": true, "script": "index.js", "sourceDir": "/ home / myuser / app", "logFile": "/home/myuser/logs/forever.log", "outFile": "/ home / myuser / logs / out.log "," errFile ":" /home/myuser/logs/error.log "}

Это приложение может быть запущено навсегда, как показано ниже:


$ forever start ./forever/development.json

Абсолютные пути к таким файлам конфигурации также поддерживаются:


$ forever start /home/myuser/app/forever/development.json

Примечание. Forever анализирует файлы конфигурации JSON, используя зашикать , что позволяет использовать встроенные комментарии в таких файлах.

Файлы конфигурации нескольких приложений

Файлы конфигурации JSON также можно использовать для определения параметров запуска для нескольких приложений, как показано ниже.

[{// App1 "uid": "app1", "append": true, "watch": true, "script": "index.js", "sourceDir": "/ home / myuser / app1"}, { // App2 "uid": "app2", "append": true, "watch": true, "script": "index.js", "sourceDir": "/ home / myuser / app2", "args": ["--port", "8081"]}]

Использование в вашем коде

Модуль forever предоставляет некоторые полезные методы для использования в вашем коде. Каждый метод возвращает экземпляр EventEmitter, который выдает после завершения. Увидеть навсегда Cli команды для использования образца.

Примечание: С [email protected] процессы не будут автоматически доступны в forever.list (). Чтобы включить ваши процессы в список forever.list () или forever, вы должны создать экземпляр сервера сокетов forever:


навсегда;

Этот метод принимает несколько экземпляров forever.Monitor, которые определены в зависимости forever-monitor.

forever.load (config)

Синхронно устанавливает указанную конфигурацию (config) для модуля forever. Есть два важных варианта:

Параметр Описание Корневой каталог по умолчанию для размещения всех файлов журнала по умолчанию forever.root pidPath Директория для размещения всех файлов * .pid навсегда [root] / pids sockPath Директория для сокетов для IPC между рабочими [root] / sock loglength Количество журналов, которые нужно вернуть в навсегда хвост 100 столбцов Массив столбцов, отображаемых, когда формат равен true forever.config.get ('columns') Логическое значение debug, указывающее, что он запускается в режиме отладки.

forever.start (файл, параметры)

Запускает скрипт с навсегда. Объект параметров - это то, что ожидается от Monitor of forever-monitor.

forever.startDaemon (файл, параметры)

Запускает скрипт с forever в качестве демона. ВНИМАНИЕ: Демонизирует текущий процесс. Объект параметров - это то, что ожидается от Monitor of forever-monitor.

forever.stop (индекс)

Останавливает скрипт демона навсегда по указанному индексу. Эти индексы такие же, как и в forever.list (). Этот метод возвращает EventEmitter, который вызывает событие stop после завершения.

forever.stopAll (формат)

Останавливает все навсегда запущенные сценарии. Этот метод возвращает EventEmitter, который вызывает событие stopAll по завершении.

Параметр format является логическим значением, указывающим, должны ли возвращаемые значения быть отформатированы в соответствии с настроенными столбцами, которые могут быть установлены с помощью столбцов forever или программно forever.config.set ('columns').

forever.list (формат, обратный вызов)

Возвращает список объектов метаданных о каждом процессе, который выполняется навсегда. Этот метод возвращает список метаданных как таковой. Только процессы, которые вызвали forever.startServer (), будут доступны из forever.list ()

Параметр format является логическим значением, указывающим, должны ли возвращаемые значения быть отформатированы в соответствии с настроенными столбцами, которые могут быть установлены с помощью столбцов forever или программно forever.config.set ('columns').

forever.tail (цель, параметры, обратный вызов)

Ответы с журналами от целевого сценария (ов) от хвоста. Есть два варианта:

  • длина (числовая): используется как параметр -n для хвоста.
  • stream (логическое значение): используется в качестве параметра -f для tail.

forever.cleanUp ()

Удаляет любые посторонние навсегда * .pid файлы, которые находятся в целевой системе. Этот метод возвращает EventEmitter, который вызывает событие «cleanUp» после завершения.

forever.cleanLogsSync (процессы)

Удаляет все файлы журнала из корневого каталога навсегда, которые не принадлежат текущим запущенным вечным процессам. Процессы - это значение, возвращаемое из Monitor.data в forever-monitor.

forever.startServer (monitor0, monitor1, ..., monitorN)

Запускает навсегда HTTP-сервер для связи с навсегда CLI. ПРИМЕЧАНИЕ: это изменит ваш process.title. Этот метод принимает несколько экземпляров forever.Monitor, которые определены в зависимости forever-monitor.

Регистрация и расположение выходных файлов

По умолчанию навсегда помещает все необходимые файлы в /$HOME/.forever. Если вы хотите изменить это местоположение, просто установите переменную среды FOREVER_ROOT, когда вы работаете вечно:

FOREVER_ROOT = / etc / навсегда начать index.js

Убедитесь, что пользователь, выполняющий процесс, имеет соответствующие права для чтения и записи в этот каталог.

Выполнить тесты


$ npm test

Лицензия: MIT

Автор: Чарли Роббинс

Авторы: Федор Индутный , Джеймс Холлидей , Чарли Макконнелл , Мацей Малецкий , Джон Ланкастер