Чтобы запустить одно приложение, необходимо запустить пакетный файл (например, запустить Jetty, отобразить живые журналы и т. Д.). Приложение будет работать, только если этот пакетный файл запущен. Поэтому я вынужден запускать этот пакетный файл, а не выходить с сервера Windows.
Можно ли запустить этот пакетный файл как сервис? Я экспериментирую с одним из предложений аналогичного вопроса .
windows
windows-services
batch-file
publicRavi
источник
источник
Ответы:
NSSM является полностью бесплатным и сверхлегким, с командной строкой / терминалом в качестве администратора:
тогда появится диалоговое окно, чтобы вы могли выбрать, где находится файл, который вы хотите запустить.
удалить
источник
nssm
все необходимые аргументы при вводе, чтобы избежать ввода всплывающих данных - я пытаюсь автоматизировать процесс?Почему бы просто не настроить его как запланированную задачу, запуск которой запланирован при запуске?
источник
Для этого есть встроенный Windows cmd: sc create . Не так красиво, как nssm, но вам не нужно загружать дополнительное программное обеспечение.
Заметка
=
источник
Нет необходимости в дополнительном программном обеспечении. Используйте планировщик задач -> создать задачу -> скрытый. Флажок для скрытого находится в левом нижнем углу. Задайте задачу для запуска при входе в систему (или при любых других условиях) и выберите задачу на вкладке действий. Запуск скрытого гарантирует, что задача выполняется в фоновом режиме, как служба.
Обратите внимание, что вы также должны настроить программу на запуск «вне зависимости от того, вошел пользователь в систему или нет», иначе программа все равно будет работать на переднем плане.
источник
Как говорит Дуг Керри, используйте RunAsService.
Из моего прошлого опыта вы должны помнить, что Служба, которую вы создадите, будет
не уверен, что последний применился ... это была одна большая кобыла в проекте, над которым я работал некоторое время назад.
источник
Хотя это не бесплатно (но 39 долларов), FireDaemon работал так хорошо для меня, я должен рекомендовать его. Он запускает ваш пакетный файл, но имеет множество дополнительных и очень полезных функций, таких как планирование, мониторинг обслуживания, установка сервисов на основе графического интерфейса или XML, зависимости, переменные среды и управление журналами.
Я начал использовать FireDaemon для запуска серверов приложений JBoss ( run.bat ), но вскоре понял, что богатство возможностей конфигурации FireDaemon позволило мне отказаться от пакетного файла и воссоздать назначение его команд в определении службы FireDaemon.
Есть также СУПЕР FireDaemon под названием Trinity, на который вы можете обратить внимание, если у вас есть большое количество серверов Windows, на которых можно управлять этой службой (или технически любой службой).
источник
На сервере Windows 2019 вы можете запустить Java-сервер Minecraft с помощью следующих команд:
sc create minecraft-server DisplayName = "minecraft-server" binpath = "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type = own start = auto
Файл .lnk - это стандартный ярлык Windows для командного файла.
--- .bat файл начинается ---
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
--- .bat файл заканчивается ---
Все это потому что:
служба не знает, как запустить в папке,
cmd.exe не знает, как запустить в папке
Запуск службы приведет к ошибке «своевременно», но файл журнала показывает, что сервер работает.
Если вам нужно выключить сервер, просто зайдите в диспетчер задач и найдите сервер java в фоновых процессах и завершите его, либо завершите работу сервера в игре с помощью команды / stop, либо для других программ / серверов используйте методы отношение к серверу.
источник
AlwaysUp легко запустит ваш пакетный файл как сервис. Он похож на FireDaemon (упомянутый выше) и не является бесплатным, но вы можете найти богатый набор функций, который будет полезен в профессиональной среде.
Удачи!
источник