Назад | Перейти на главную страницу

Запуск серверной программы

Хорошо, я опытный разработчик на стороне клиента и теперь успешно создал приложение на стороне сервера, используя Java / MongoDB для API и NodeJS для общедоступных ответов html.

Все нормально, кроме сомнений.

Как мне запускать исполняемые файлы сервера?

В настоящее время я запускаю mongodb, используя systemd, поэтому при запуске он будет запускаться автоматически.

Затем я открываю screen и запустите приложение NodeJS, используя supervisor программа, она перезапустит приложение при сбое.

На новой вкладке я запускаю приложение Java напрямую, используя java -jar main/application.jar

Теперь я могу отсоединиться screen и близко ssh.

НО, Должен ли я переносить эти исполняемые файлы в службы или все нормально работать, как я?

Вы должны использовать systemd для запуска и управления серверными приложениями.

Если вы запустите приложение с экрана, вы не сможете автоматически перезапустить их при перезагрузке. Ниже приведен пример кода сценария systemd, который запускает приложение jar как службу. Вы можете поместить его в /etc/systemd/system/test.service, а затем запустить службу с помощью systemctl start test

Этот скрипт был протестирован на RHEL 7

[Unit]
Description=java application descrption
#After=NetworkManager.service

[Service]
Type=simple
ExecStart=/usr/bin/java -jar /root/tmp/test.jar
ExecStop=pkill -f '/root/tmp/test.jar'
#ExecReload=
PIDFile=/var/run/jboss-as/test.jar.pid

[Install]
WantedBy=multi-user.target

Серверный материал должен запускаться / останавливаться автоматически с сервером и работать в фоновом режиме... в большинстве современных дистрибутивов Linux это, вероятно, будет сделано с systemd (как я уже сказал). Старые дистрибутивы будут system V init скрипты в /etc/init.d (или аналогичный) или иногда upstart в /etc/init (Ubuntu).

Лично я не думаю, что правильно спроектированные демоны (серверное программное обеспечение / службы) должны требовать оболочки / мониторы, такие как screen или supervisor для правильной работы. Они должны позаботиться о себе, как и о большинстве других вещей, поставляемых с Linux (серьезно, посмотрите на это).