• Кто как реализует автозапуск приложений node.js?

    AntiStream
    @AntiStream
    Потоковый программист
    Через systemd очень легко это делается.
    В начале создаём файл сервиса нашего node приложения по следующему типу:

    # nodeapp.service
    [Service]
    Restart=always
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodeapp
    User=nodeuser
    Environment=NODE_ENV=production PORT=3000
    WorkingDirectory=/path/to/nodeappdir
    ExecStart=/usr/bin/node app.js
    
    [Install]
    WantedBy=multi-user.target


    После чего делаем следующие действия в консоли:

    sudo cp nodeapp.service /etc/systemd/system/nodeapp.service # копируем его куда надо
    sudo nano /etc/systemd/system/nodeapp.service # смотрим, [редактируем,] [сохраняем,] закрываем
    sudo systemctl daemon-reload # перезагружаем список "демонов"
    sudo systemctl start nodeapp # запустить сервис
    sudo systemctl enable nodeapp # делаем авто запускаемым при старте системы
    
    # другие действия:
    sudo systemctl disable nodeapp # отключаем авто запуск
    sudo systemctl stop nodeapp # остановить сервис
    sudo systemctl restart nodeapp # перезагрузка
    systemctl status nodeapp # посмотреть статус
    journalctl -u nodeapp.service # глянуть логи


    Всё -- так это делается на линукс системах, а как на винде не знаю, там свои заморочки =))
    Ну и надо чтобы systemd был установлен в системе, на убунте он вроде доступен(есть) с версии 14.10
    Ответ написан
    3 комментария
  • Что такое сокет в java?

    @Div100
    Интерфейс обмена данными.
    Грубо говоря, ты можешь отправлять данные по протоколу HTTP, а можешь отправлять по сокету, сокет состоит из IP и порта. Для чего это нужно? IP нужен для определение устройства в сети, у каждого устройства есть IP адрес, по которому это устройство доступно. Так вот когда мы нашли устройство по ИП адресу, теперь нам нужно определить клиент, программу, с которой будем обмениваться данными, для этого и нужен порт, порт отвечает за "обнаружние" программы.
    Теперь мы можеот отправлять и получать данные на сокет, для этого нужно создать соединения обеих сторон, в отличи от HTTP, данные может отправлять не только клиент, но и сервер.
    Это если вкратце.
    Ответ написан
    4 комментария