Para executar um aplicativo, um arquivo em lotes precisa ser iniciado (o que faz coisas como iniciar o Jetty, exibir logs ativos etc.). O aplicativo funcionará apenas se esse arquivo em lotes estiver em execução. Portanto, sou forçado a ter esse arquivo em lotes em execução e não sair do servidor Windows.
Este arquivo em lotes pode ser executado como um serviço? Estou experimentando uma das sugestões de uma pergunta semelhante .
windows
windows-services
batch-file
publicRavi
fonte
fonte
Respostas:
O NSSM é totalmente gratuito e extremamente fácil, executando o prompt de comando / terminal como administrador:
aparecerá uma caixa de diálogo para que você possa escolher onde está o arquivo que deseja executar.
desinstalar
fonte
nssm
todos os argumentos necessários na entrada para evitar a entrada de dados pop-up - estou tentando automatizar o processo?Por que não simplesmente configurá-lo como uma tarefa agendada que está agendada para ser executada na inicialização?
fonte
Existe um cmd interno do windows para fazer isso: sc create . Não é tão chique quanto o nssm, mas você não precisa baixar um software adicional.
Nota
=
fonte
Não há necessidade de software extra. Use o agendador de tarefas -> criar tarefa -> oculto. A caixa de seleção para oculto está no canto inferior esquerdo. Defina a tarefa a ser acionada no login (ou em qualquer condição que você desejar) e escolha a tarefa na guia ações. A execução oculta garante que a tarefa seja executada silenciosamente em segundo plano como um serviço.
Observe que você também deve definir o programa para executar "se o usuário está conectado ou não" ou o programa ainda será executado em primeiro plano.
fonte
Como Doug Currie diz, use RunAsService.
Pela minha experiência passada, você deve se lembrar que o Serviço que você gera
não tenho certeza se o último ainda se aplica ... foi uma grande égua noturna em um projeto em que trabalhei há algum tempo.
fonte
Embora não seja gratuito (mas US $ 39), o FireDaemon funcionou tão bem para mim que preciso recomendá-lo. Ele executará seu arquivo em lote, mas possui muitas funcionalidades adicionais e muito úteis, como agendamento, monitoramento de serviços, instalação de serviços baseada em GUI ou XML, dependências, variáveis ambientais e gerenciamento de logs.
Comecei usando o FireDaemon para iniciar os servidores de aplicativos JBoss ( run.bat ), mas logo percebi que a riqueza das habilidades de configuração do FireDaemon me permitia abandonar o arquivo em lotes e recriar a intenção de seus comandos na definição de serviço do FireDaemon.
Há também um SUPER FireDaemon chamado Trinity, que você pode procurar se tiver um grande número de servidores Windows nos quais gerenciar esse serviço (ou tecnicamente, qualquer serviço).
fonte
No Windows 2019 Server, você pode executar um servidor java Minecraft com estes comandos:
sc criar minecraft-server DisplayName = "minecraft-server" binpath = "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type = own start = auto
O arquivo .lnk é um atalho padrão do Windows para um arquivo em lotes.
--- O arquivo .bat começa ---
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
--- O arquivo .bat termina ---
Tudo isso porque:
serviço não sabe como iniciar em uma pasta,
O cmd.exe não sabe como iniciar em uma pasta
Iniciar o serviço produzirá um erro de "maneira oportuna", mas o arquivo de log revela que o servidor está em execução.
Se você precisar desligar o servidor, entre no gerenciador de tarefas e encontre o servidor java em processos em segundo plano e finalize-o ou encerre o servidor no jogo usando o comando / stop ou para outros programas / servidores, use os métodos relevante para o servidor.
fonte
O AlwaysUp executará facilmente seu arquivo em lotes como um serviço. É semelhante ao FireDaemon (mencionado acima) e não é gratuito, mas você pode achar que o recurso rico é um ativo em um ambiente profissional.
Boa sorte!
fonte