systemctl start/stop service: Como configurar o script Upstart e o processo de respawn no Ubuntu, CentOS, Redhat Linux
Publicados: 2021-06-09Como escrever script de inicialização para systemd?
systemd
é o mais recente service management utility
em todas as versões mais recentes da distribuição Linux, como Ubuntu OS, Redhat OS, CentOS.
É por isso que a versão Ubuntu 17.4 e Redhat 7.4 agora suporta systemctl command
como um script upstart. Se você estiver em uma versão mais antiga do sistema operacional Linux, talvez seja necessário olhar na parte inferior desta página para ver o init.d script
mais antigo
Vamos discutir as coisas abaixo neste tutorial
- Configurando a unidade de serviço systemd
- Como
configure
o systemd? - Como
enable
-lo systemd? - Como iniciar o processo automaticamente usando o systemd?
- Como parar e
respawn
o processo usando o systemd?
Etapas de configuração para este tutorial:
Prerequisite:
Compilamos a versão do programa CrunchifyAlwaysRunningProgram.java na pasta /tmp/crunchify
. Este processo java continuará sendo executado em segundo plano para sempre. Você pode baixar o programa aqui.
Depois de baixá-lo, try to compile
-lo e executá-lo para ter certeza de que está funcionando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
Você pode digitar CTRL + C
para sair do programa.
Agora vamos começar a configurar o script de inicialização automática do systemd para o programa acima.
Passo 1
- Vá para a pasta /lib/systemd/system
- Digite
cd /lib/systemd/system
Passo 2
- crie o arquivo
crunchify.service
(mude o nome do arquivo de acordo) - coloque abaixo o conteúdo nele
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

Etapa 3
- Salvar Arquivo
- Forneça permissão de execução usando
chmod 755 crunchify.service
Passo 4
- Carregue o crunchify.service usando o comando
systemctl daemon-reload
- Ative o crunchify.service usando o comando
systemctl enable crunchify.service
- Inicie o crunchify.service usando o comando
systemctl start crunchify
- Verifique o status do crunchify.service usando o comando
systemctl status crunchify
Passo-5
- Agora verifique se o processo está rodando ou não??
- Digite o comando
ps -few | grep java
ps -few | grep java
para ver todos os processos Java em execução - Você deve ver algo assim
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
Isso significa que o processo 28631
está começando usando seu script upstart. Você pode ter um ID de processo diferente.
Como verificar se o seu systemd crunchify.service está funcionando ou não?
- Tente matar o processo usando
kill -9 28631
e você verá que um novo processo deve ser criado automaticamente. - No meu caso, o novo ID de processo
28887
criado
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
Vídeo: Exemplo completo de configuração do script upstart do Live systemd:
Este vídeo contém – Como configurar o script de inicialização/inicialização do systemd no CentOS, Redhat, Ubuntu Linux OS?
- Como executar automaticamente o script de shell na inicialização da inicialização
- Como criar um serviço systemd no Linux (CentOS 7)
- Como configurar um serviço Linux para iniciar automaticamente?
- Script de inicialização do Centos 7 systemd
- Script de inicialização do Ubuntu systemd
Quer saber mais sobre o systemd? Aqui está uma folha de dicas para sua referência.
Espero que você aprenda everything about systemd command
e a configuração do script upstart em todos os tipos de sistema operacional Linux.
PARAR: SOMENTE para versões mais antigas do SO
Se você estiver executando older version
do Redhat, Ubuntu, CentOS, precisará ter um script neste formato.
- Vá para
/etc/init
- Crie o arquivo
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- Basta iniciar o serviço usando o comando
service crunchify start
- Siga as mesmas etapas de verificação acima
Deixe-me saber se você encontrar algum problema ao executar o script de inicialização em seu ambiente. Aproveite o seu dia e codificação feliz.