навсегда

  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. Выполнить тесты

Простой инструмент 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

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

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

Похожие

Защита файлов и папок
Конечно, вы часто задавались вопросом, как запретить доступ к вашим личным файлам и папкам, другим пользователям компьютера или что делать, чтобы к ним имели доступ только избранные пользователи. Создатели Windows XP реализовали в этой операционной среде расширенную поддержку прав доступа к частным данным, которые можно было найти в более ранних версиях: Windows 2000 и Windows NT. Вопреки внешнему виду, управление правами доступа является очень простой и инстинктивной операцией, и именно в
Визуальный эффект в JavaScript «пузыри» как интересное дополнение к сайту
Визуальный эффект в JavaScript «пузыри» как интересное дополнение к сайту 4,8 (95%) 4 Оживление сайта с привлекательной привязкой, такой как визуальный эффект в JavaScript, обычно не является хорошей идеей. Однако есть проекты, в которых привлекательный фон может помочь интересам получателя или, возможно, вы просто хотите разориться. Есть люди, которые думают, что сайт без анимированных элементов или видео - это что-то немодное или даже архаичное. Мы представим
Listonic Order Shopping - новое приложение, которое сделает покупки на вашем смартфоне
С тех пор как он появился на рынке Listonic - один из самых интересных польских мобильных проектов, который до сих пор разрабатывал расширенный список мобильных покупок, стало ясно, что следующим этапом развития идеи станет возможность делать покупки через смартфон. И это - Listonic только выпускает новое приложение, которое позволяет вам заказывать покупки через
Использование автономных карт в Европе: это для вас?
... использование оффлайн карт в Европе! Как на самом деле работает использование автономных карт? Путешественникам в Европу традиционно требовались большие объемы данных, если они хотели полагаться на Google Maps или какой-либо другой тип онлайн-картографического приложения. В последнее время автономные возможности добавляются как функция к существующим приложениям, и создаются новые приложения, предназначенные для автономных карт. Оффлайн-карты работают аналогично GPS
Три способа увеличить радиус действия и мощность сетей WiFi
Добавлено: 4 года, 5 месяцев назад оценка: (1) (0) В разных ситуациях бывает, что радиус действия вашей сети WiFi слишком мал или ее мощность слишком мала. Сегодня на практике я покажу вам три способа решения этой проблемы. Способ 1. Замена антенн в роутере Уже в самом начале я хотел
Goose VPN обзор
Goose VPN является поставщиком конфиденциальности в Нидерландах с некоторыми привлекательными функциями и продуктами. Гусь имеет обширную сеть из 26 стран. Большинство из них находятся в Европе и Северной Америке, но есть также серверы в Гонконге, Индии, Израиле и Сингапуре. (Австралийский сервер, который отсутствовал в нашем последнем обзоре, теперь вернулся.) Есть поддержка
Сектор космической реконструкции
Привет, ребята, CommanderAnder и TacoFangs (CommanderFangs?) Здесь, чтобы поговорить о Sector Space! Мы все очень рады, наконец, увидеть, как рушатся стены, и вы, ребята, можете свободно летать по Альфа, Бета и Дельта Квадрантам. Есть много чего, так что давайте просто погрузимся в суть этого. Шака, когда стены
Справочник по методам строковых JavaScript
При написании JavaScript я часто нахожу себя в поиске информации или использую Ссылка Mozilla чтобы найти точный синтаксис и
Samsung Secure Folder - все, что вам нужно знать
Samsung Secure Folder - это зашифрованное пространство на вашем смартфон для хранения файлов, изображений, видео и
4 поддельные вирусные розыгрыши, чтобы испугать своих друзей
Реклама Разыгрывать своих друзей и семью - лучший вид веселья. И нет ничего плохого в безобидной шалости, особенно если жертвой является кто-то, кроме вас. В наши дни мы постоянно подключены к нашим ноутбукам, планшетам или смартфонам. Итак, что может быть лучше, чтобы поднять ваш партнер или братьев и сестер, чем, казалось бы, уничтожить их жесткий диск с помощью поддельного вируса? Хотя следующие поддельные вирусы могут показаться вредоносным для ничего не подозревающих,
Windows 10 Insider Preview с новой сборкой 17713 (RS5) для ПК
Именно в круге Fast Ring приземлилась компиляция Windows 10 Insider Preview под номером 17713. Естественно, это компиляция из ветви Redstone 5 и Fast Ring, и, что важно, для пользователей, остающихся в круге Skip Ahead - она ​​закрыта, и все в этом круге будут перемещены в Быстрое Кольцо. Не менее важно, что Skip Ahead полностью сбрасывается, и когда он возвращается с другой веткой, можно присоединиться к людям, которые ранее были отклонены из Skip Ahead. Хорошо, давайте вернемся к последней

Комментарии

Сколько информации «обратный вызов» «знает» об исходной среде теперь, когда она сама по себе?
Сколько информации «обратный вызов» «знает» об исходной среде теперь, когда она сама по себе? Это вопросы Scope. На практике, стек вызовов и переменные среды, необходимые для обратного вызова, все хорошо упакованы в замыкание и сохраняются, когда они необходимы. Опять же, мы поговорим об этом чуть позже. Для хорошего объяснения всего этого см. этот блог из углеродной пятерки.
Какова цель канала, куда он нас ведет?
Какова цель канала, куда он нас ведет? Как улучшить канал и материалы с течением времени? Просто желая настроить канал YouTube, но не имея представления о его теме, вы можете сделать ставку на одну из самых популярных категорий на сайте, такую ​​как: музыка , игры , детские материалы , люди и личности , комедия , красота , технологии и «странные» , эксперименты (часто связанные с химией или физикой).
Как вы можете уменьшить размер графических файлов на сайте и увеличить скорость загрузки страницы?
Как вы можете уменьшить размер графических файлов на сайте и увеличить скорость загрузки страницы? Одним из способов является использование Photoshop, где вы можете уменьшить размер файла изображения с помощью команды «Сохранить для Web» в Adobe Photoshop. Используя эту команду, мы настроим изображение на минимально допустимый размер файла, сохраняя при этом качество. Изображения сайта в Google Sitemaps В случае контроля и улучшения
Десятки книг в вашем кармане - разве это не звучит убедительно?
Десятки книг в вашем кармане - разве это не звучит убедительно? 5. Возможность поиска текста Отличная вещь. Мы знаем, что книга - это то, что мы ищем, но мы не помним, где - бумажная книга не позволяет нам использовать приличный CTRL + F + 6. Смущающие названия Вы читаете книгу о смущающем, противоречивом названии в общественном месте? Имея это на читателя, вы не подвергаетесь остракизму со стороны третьих лиц 😉 7. Бесплатные
Какой формат записи изображения мне выбрать?
Какой формат записи изображения мне выбрать? Выбор формата зависит от типа фотографии на странице: Формат .Jpg - хорошо работает для фотографий , например, показанного ранее; Формат .Png - хороший выбор, если вы сохраняете изображение, содержащее текст - например, логотип компании или инфографику. Тогда мы уверены, что все края текста будут четкими и без искажений
Когда выбрать формат JPEG, а когда нет?
Когда выбрать формат JPEG, а когда нет? Этот формат идеально подходит для сохранения фотографий, потому что он хорошо справляется с тональными переходами и не сохраняет столько данных, что делает файл слишком важным. Это означает, что если вы не хотите обременять свой сайт слишком большими фотографиями, запишите свои фотографии в этом формате в максимально возможной степени. он не подходит для сохранения простых графических рисунков, где преобладают монохромные фигуры (логотипы,
Как выглядит безопасное использование Интернета?
Как выглядит безопасное использование Интернета? Для начала стоит вспомнить основные способы поведения, которые помогут вам оставаться в безопасности. Лучше не входить (особенно на банковские счета) через общедоступный Wi-Fi - вы никогда не знаете, как он защищен и кто его контролирует. То же самое относится к общим компьютерам, например, в университете, на работе или в библиотеке. Если вы уже используете такой компьютер, используйте приватный режим. Относитесь
Что такое файлы Sitemap?
Что такое файлы Sitemap? В техническом плане Sitemap - это карта ссылок всех страниц вашего сайта. С точки зрения непрофессионала, Sitemap - это страница, на которой перечислены все ваши страницы вашего веб-сайта, на которые пользователь может перейти, чтобы перейти на эту страницу. Карта сайта помогает сделать ваш сайт более удобным для пользователей, чего хотят Google и другие поисковые системы. Создайте карту сайта для ваших посетителей Назначение карты сайта
Как на самом деле работает использование автономных карт?
Как на самом деле работает использование автономных карт? Путешественникам в Европу традиционно требовались большие объемы данных, если они хотели полагаться на Google Maps или какой-либо другой тип онлайн-картографического приложения. В последнее время автономные возможности добавляются как функция к существующим приложениям, и создаются новые приложения, предназначенные для автономных карт. Оффлайн-карты работают аналогично GPS в вашем автомобиле. Вы загружаете карту, а затем приложение

Как на самом деле работает использование автономных карт?
CommanderFangs?
Итак, что может быть лучше, чтобы поднять ваш партнер или братьев и сестер, чем, казалось бы, уничтожить их жесткий диск с помощью поддельного вируса?
Сколько информации «обратный вызов» «знает» об исходной среде теперь, когда она сама по себе?
Какова цель канала, куда он нас ведет?
Какова цель канала, куда он нас ведет?
Как улучшить канал и материалы с течением времени?
Как вы можете уменьшить размер графических файлов на сайте и увеличить скорость загрузки страницы?
Как вы можете уменьшить размер графических файлов на сайте и увеличить скорость загрузки страницы?
Десятки книг в вашем кармане - разве это не звучит убедительно?