|
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 10
|
|
Перезагрузка Express-сервера самим сервером26.05.2016, 17:20. Показов 4753. Ответов 10
Метки нет (Все метки)
Как мне из скрипта а) его завершить, б) перезагрузить?
Предполагается, что в скрипте запущен сервер Express. Хочу с клиента перезагружать, после изменения параметров, которые не вступят в силу, если не перезагрузится скрипт. Впрочем было бы достаточно не скрипт перезагружать, а вырубить слушателя от Express, а потом снова его врубить. Второй вариант использования этой возможности можно описать так: сервер запускается как обычно делается еще одна программа, которая висит в трее с менюшкой, в которой есть возможность настроить сервер, запустить, перезапустить, вырубить. Ну чтобы не через командную строку это делать.
0
|
|
| 26.05.2016, 17:20 | |
|
Ответы с готовыми решениями:
10
Бурное общение сервера с самим собой Перезагрузка сервера Удаленная перезагрузка сервера |
|
Ренегат
|
|||
| 26.05.2016, 18:46 | |||
|
я кстати не люблю с этими менюшками, мне как-то консоль в данном случае по душе а вообще я бы подавал сигналы, например SIGTSTP, а потом SIGCONT это если вам нужно только приостановить процесс, а потом его возобновить но наверное вам всё-таки надо его перезагрузить тогда я предлагаю самый простой способ - сначала убить, а потом заново поднять это можно сделать с помощью bash (bat) или реально сделать программу, которая бы следила за сервером как за дочерним процессом и при надобности убивала, а потом запускала его заново если вы уж хотите с GUI, то сначала скажите какие яп вы знаете. для этой задачи подойдёт хоть php develstudio (но я такого не говорил) короче расскажите поподробнее какой у вас сервер, если он стоит на локалке, то вообще легко, если он стоит на vps например, то это уже намного сложнее) Добавлено через 1 минуту в общем-то проблема в том, что сервер когда закрывается он уже себя запустить не сможет, потому что он уже умер
0
|
|||
|
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 10
|
|
| 26.05.2016, 18:50 [ТС] | |
|
Это нужно для удобства пользователю. Он командную строку боится. Впрочем они все ее боятся.
Сервер... вообще-то программа на две части поделена. Сервер и клиентские. На клиентских просто браузер. На сервере js-код. На сервере будет в трее для пользователя. И еще в клиентских будет кнопка перезапуска. Судя по тому что вы написали, перезапуск сервера, силами самого скрипта, где этот сервер создается, нельзя. Печально. А почему http.createServer() такой странный? Создать можно, а вот остановить, перезапустить с иными настройками - нельзя? В Express-е тоже есть странности. Типа роутер можно подключить, а вот уже отключить на ходу нельзя. То есть, если нужно иная схема маршрутизации, то приходится все перезагружать заново.
0
|
|
|
Ренегат
|
|||
| 26.05.2016, 20:16 | |||
Сообщение было отмечено khusamov как решение
Решениесоответственно можно запустить с новыми настройками через .listen() но как я уже сказал, тогда надо будет переписать код запуска сервера, а это означает переписать основу самого сервера и ещё вопрос, вам не кажется небезопасным давать каждому пользователю возможность перезапустить сервер? и как будут меняться параметры сервера?
0
|
|||
|
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 10
|
|||||||||
| 26.05.2016, 20:22 [ТС] | |||||||||
|
close я только сейчас заметил
https://nodejs.org/dist/latest... e_callback Получается что код останова такой:
0
|
|||||||||
|
Ренегат
|
|||||||
| 26.05.2016, 20:47 | |||||||
|
у вас ведь есть app у него есть .use() .use(req, res, next) req - запрос к серверу res - ответ клиенту next - передача шага следующему миделверу, если этот не обработал вообще тогда придётся менять почти всё у вас должна быть ваша маршрутизация в виде модулей, к которым проводятся имена то есть примерно так
0
|
|||||||
|
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 10
|
|
| 26.05.2016, 20:52 [ТС] | |
|
Я понял. Сделать свою маршрутизацию. Теперь достаточно легко на лету менять массив VirtualRoad.
Жалко что нет метода app.unuse(), который исключил бы нужный мидлваре из приложения... Добавлено через 49 секунд Вообще-то в этом случае проще остановить сервер. Удалить app, собрать новый app и запустить сервер.
0
|
|
|
Ренегат
|
|||||||
| 26.05.2016, 21:27 | |||||||
|
я бы изначально сделал эту функцию в архитектуре (изменение маршрутизации на ленту) но вам могу предложить вот такое
0
|
|||||||
|
0 / 0 / 0
Регистрация: 18.01.2015
Сообщений: 10
|
|
| 26.05.2016, 21:40 [ТС] | |
|
pkill это уже лишнее, раз есть метод close() сервера.
Добавлено через 14 секунд Спасибо за ответы!
0
|
|
|
Coding is art
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
|
|
| 28.05.2016, 23:02 | |
|
Если я правильно понимаю задачу
То вам нужно сделать cli своему приложению и через клиента отправлять команду ему.. ну.. допустим есть модуль nodemon который следин за изменением файлов и перезапускает приложение Но можно и в ручную перезапустить написав rs Всё что вам остаётся сделать - отправить от пользователя команду и сказать вашему скрипту выполнить rs в консоле.. process.exec( 'rs' ) как-то так наверное.. ну или не использую nodemon подобрать команду типо 'process kill & node app' ( честно не владею командными строками, не скажу как правильно ) но суть в том что бы запихнуть их в что-то похожее на process.exec
0
|
|
|
Ренегат
|
||
| 29.05.2016, 00:13 | ||
|
про process.exec я тоже говорил, только я говорил о более реальной реализации нужно сделать так, чтобы одно приложение запускало сервер и следило за ним, при надобности пришибало процесс и поднимало его снова Добавлено через 1 минуту только нету у нас process.exec в вашем понимании у нас есть общение в этим сервером через стандартные вводы выводы текста и метод send
0
|
||
| 29.05.2016, 00:13 | |
|
Помогаю со студенческими работами здесь
11
Автоматическая перезагрузка сервера при зависании Организация сервера для работы с ним (сервером) по RDP Организовать связь с удаленным сервером (мониторинг работоспособности сервера) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|