O que é inicialização automática do pacote jar
Em sistemas Linux, "inicialização automática do pacote jar" refere-se ao empacotamento de um programa Java em um arquivo Jar executável por meio de configuração e configuração para execução automática quando o sistema for iniciado. A seguir estão alguns conceitos relacionados à inicialização automática do pacote jar:
Arquivo Jar: O arquivo Jar (Java Archive) é um formato de arquivo usado para empacotar e distribuir programas Java. Ele pode conter arquivos de classe Java, arquivos de recursos, arquivos de biblioteca, etc. Os arquivos Jar podem usar a Java Virtual Machine (JVM) para executar os programas dentro deles.
Arquivo Jar executável: Um arquivo Jar executável refere-se a um arquivo Jar com o ponto de entrada do programa principal incorporado nele. Ele pode ser executado diretamente por meio de comandos Java ou clicando duas vezes. Os arquivos Jar podem ser marcados como executáveis definindo o atributo Main-Class no arquivo de manifesto.
Script de inicialização: um script de inicialização é um script Shell usado para executar operações específicas, como definir variáveis de ambiente, iniciar uma máquina virtual Java e especificar o arquivo Jar executável do programa principal como parâmetro. Os scripts de inicialização normalmente executam programas Java como processos em segundo plano.
Serviço do sistema: Em sistemas Linux, os arquivos Jar podem ser gerenciados como um serviço do sistema para que possam ser executados automaticamente quando o sistema for iniciado. Um serviço de sistema é um programa que fornece funções em segundo plano e pode ser gerenciado e controlado por meio de scripts de inicialização do sistema ou ferramentas de gerenciamento de serviço (como Systemd).
Systemd: Systemd é um sistema de inicialização e gerenciador de serviços no sistema Linux. Ele pode ser usado para gerenciar operações como iniciar, parar, reiniciar e visualizar o status dos serviços do sistema. Ao criar e configurar um arquivo de unidade Systemd, você pode usar o arquivo Jar como um serviço Systemd e configurá-lo para ser executado automaticamente quando o sistema for iniciado.
Os benefícios dos pacotes jar de inicialização automática
Executar automaticamente quando o sistema é iniciado: Ao definir o pacote Jar como um serviço de inicialização automática, você pode garantir que o programa seja executado automaticamente quando o sistema for iniciado. Isso é útil para aplicativos que precisam ser executados como serviço em segundo plano após a inicialização do sistema, sem a necessidade de iniciá-los manualmente.
Gerenciamento e manutenção convenientes: Depois de usar o pacote Jar como um serviço de inicialização automática, você pode usar ferramentas ou comandos relevantes para gerenciar e manter o serviço, como iniciar, parar, reiniciar e visualizar o status. Isso pode simplificar as operações e melhorar a eficiência do gerenciamento.
Evite intervenção manual: os serviços de inicialização automática eliminam a necessidade de intervenção manual. Você não precisa executar manualmente o pacote Jar sempre que o sistema for reiniciado, o que reduz o risco de erros e melhora a estabilidade do sistema.
Controle de sequência de inicialização: Ao configurar serviços de inicialização automática, você pode controlar com precisão a sequência de inicialização entre diferentes serviços. Se o seu aplicativo depender de outros serviços ou recursos, definir dependências em um serviço de inicialização automática poderá garantir a sequência de inicialização correta.
Registro em log e tratamento de erros: serviços de inicialização automática podem configurar mecanismos de registro em log e tratamento de erros. Você pode registrar informações de saída do programa em um arquivo de log para facilitar a solução de problemas e a localização do problema. Além disso, você pode definir políticas de tratamento de erros, incluindo ações como reinicializações automáticas ou envio de notificações, para garantir a confiabilidade do serviço.
Ao definir o pacote Jar como um serviço de inicialização automática, você pode gerenciar e controlar facilmente a operação do aplicativo e melhorar a confiabilidade e estabilidade do sistema. Isto é especialmente verdadeiro para serviços em segundo plano, tarefas agendadas e aplicativos que precisam ser executados automaticamente quando o sistema é iniciado.
Operação real
Preparação preliminar
Verifique o número da versão do seu servidor java
java -version
Nota: Se o servidor aqui for a versão java11, o ambiente jdk no script jarSysInit.sh abaixo deverá ser alterado para o ambiente correspondente.
etapa
1. Crie um novo arquivo de inicialização automática do pacote jar
sudo vi /etc/init.d/jarSysInit.sh
Pressione a tecla i para entrar no modo de edição e digite o seguinte:
# !/bin/bash
##JDK start 配置自己服务器的JDK环境(jkd8还是11)
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
## JDK end
# 有多少个jar就后面加上去就好(这里需要参考自己jenkins的启动脚本注意全局变量$APP_PATH 要换成jar包对应的全路径)
nohup java -Xms1024m -Xmx1024m -jar /home/admin/apps/typing_provider.jar > /home/admin/apps/typing.log 2>&1 &
Pressione a tecla esc para sair do modo de edição e digite: wq para salvar
2. Edite o arquivo que é executado automaticamente quando o servidor é ligado.
sudo vi /etc/rc.d/rc.local
Pressione a tecla i para entrar no modo de edição e adicione o seguinte conteúdo
em touch /var/lock/subsys/local neste arquivo :
#开机启动jar脚本
/etc/init.d/jarSysInit.sh
Pressione a tecla esc para sair do modo de edição e digite: wq para salvar
3. Eleve as permissões. Ambos os arquivos de script estão verdes.
Alterne os caminhos.
cd /etc/rc.d
Elevar privilégios:
sudo chmod 755 /etc/rc.local
Verifique se a atualização foi bem-sucedida
ll
Alternar diretório
cd /etc/init.d
Elevar privilégios
sudo chmod 755 /etc/init.d/jarSysInit.sh
Resumir
**Quando o pacote Jar é definido como o serviço de inicialização automática do sistema Linux, o conteúdo pode ser ainda mais enriquecido, incluindo:
Gerenciamento de recursos do sistema: por meio de serviços de inicialização automática, os recursos do sistema, como CPU, memória e rede, podem ser razoavelmente alocados e gerenciados quando o sistema é inicializado. O uso de recursos do programa pode ser otimizado com base nas necessidades reais e garantir que outras tarefas e serviços importantes possam funcionar normalmente.
Aprimoramento de segurança: Ao definir o programa como um serviço de inicialização automática, você pode usar uma identidade de usuário ou permissões específicas para executar o programa e melhorar a segurança. Os direitos de acesso podem ser restringidos e garantir que apenas utilizadores autorizados possam aceder e operar serviços relacionados. Isso ajuda a evitar acesso não autorizado e possíveis violações de segurança.
Monitoramento e alarme: O serviço de inicialização automática pode ser integrado a ferramentas de monitoramento para monitorar o status de execução do programa em tempo real. Ao configurar indicadores de monitoramento e regras de alarme apropriados, situações anormais como travamentos, cargas altas e vazamentos de memória podem ser descobertas e tratadas em tempo hábil. Isto ajuda a tomar medidas oportunas e garante a disponibilidade e estabilidade do serviço.
Atualizações automáticas e gerenciamento de versões: Usando serviços de inicialização automática, atualizações automáticas e gerenciamento de versões de programas podem ser alcançados. Você pode configurar uma política para verificar regularmente novas versões e baixar e implantar automaticamente novos pacotes Jar quando atualizados. Isso garante que os aplicativos sempre usem os recursos e correções de bugs mais recentes, garantindo a segurança e estabilidade do sistema.
Escalabilidade e flexibilidade: com serviços de inicialização automática, os aplicativos podem ser facilmente expandidos, se necessário. Você pode adicionar mais parâmetros, arquivos de configuração, plug-ins, etc. para personalizá-lo de acordo com as necessidades reais. Isso proporciona maior flexibilidade e escalabilidade para posterior desenvolvimento e manutenção de aplicativos.
Resumindo, definir o pacote Jar como um serviço de inicialização automática no sistema Linux não apenas simplifica o processo de operação, melhora a confiabilidade e a eficiência do gerenciamento, mas também fornece mais funções e garantias, como gerenciamento de recursos, aprimoramento de segurança, monitoramento e alarme. ., atualizações automáticas e flexibilidade, etc. Ao aproveitar essas vantagens, você pode gerenciar e executar melhor seus aplicativos para atender às necessidades em constante mudança e proporcionar uma experiência superior ao usuário. **