quarta-feira, 25 de maio de 2016
terça-feira, 24 de maio de 2016
maio 24, 2016
|
No comments
Queridos! A coisa toda é simples. Vou deixar um template aqui pra vocês colocarem seus scripts como serviço e pararem de usar o útil nohup. Outra coisa: Seu script DEVE TER perfil de serviço. Não estou falando de um monte de comandos um embaixo do outro, beleza?
Pra facilitar, vou sublinhar as linhas que vocês devem alterar.
Eu acho que o conteúdo é bastante explicativo, mas, vamos explicar assim mesmo. Nesse exemplo, vamos criar um usuário que executará o hubot.
1. Precisamos criar um usuário pra rodar esse serviço, por questões de segurança.
Nós não vamos definir o shell dele como /bin/false, porque é um script, ou seja, ele precisa do bash/ksh/sh para executar os comandos.
2. Coloque o script no diretório do usuário criado - isso é meio que lógico né?
3. Crie o arquivo hubot.service dentro de /etc/systemd/system. Repare: {nome do serviço}.service. Pegou o padrão? Ok!
O Conteúdo é esse daí de cima. Vamos comentar linha a linha pra entendermos.
Terminado o arquivo, execute um reload nas confs do systemd:
systemctl daemon-reload
E inicie o serviço
Podemos deixar que ele inicie junto com os outros serviços:
Prontinho. Com esse modelo vocês já podem colocar qualquer script pra rodar como serviço sem dor de cabeça. Como informação adicional, recomendo a leitura de um documento da Red Hat, muito bem explicado por sinal:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html
E um guia pra quem ainda tem medo do systemd
E isso aí. Abraços!
Pra facilitar, vou sublinhar as linhas que vocês devem alterar.
[Unit]
Description=Hubot
Requires=network.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/butis/hubot
User=sobutis
Restart=always
RestartSec=10
EnvironmentFile=/etc/hubot/variaveis.conf
ExecStart=/home/butis/hubot/bin/hubot -a rocketchat
[Install]
WantedBy=multi-user.target
Eu acho que o conteúdo é bastante explicativo, mas, vamos explicar assim mesmo. Nesse exemplo, vamos criar um usuário que executará o hubot.
1. Precisamos criar um usuário pra rodar esse serviço, por questões de segurança.
adduser hubot
Nós não vamos definir o shell dele como /bin/false, porque é um script, ou seja, ele precisa do bash/ksh/sh para executar os comandos.
2. Coloque o script no diretório do usuário criado - isso é meio que lógico né?
3. Crie o arquivo hubot.service dentro de /etc/systemd/system. Repare: {nome do serviço}.service. Pegou o padrão? Ok!
O Conteúdo é esse daí de cima. Vamos comentar linha a linha pra entendermos.
[Unit]
Description=Hubot
Descrição do serviço
Requires=network.target
Dependências. O seu serviço depende de algum outro?
After=network.target
Ordem de execução. O serviço só será iniciado após o outro definido estar rodando.
[Service]
Type=simple
WorkingDirectory=/home/butis/hubot
Diretório de execução do seu serviço.
User=sobutis
Restart=always
RestartSec=10
Caso o serviço não inicie, ele tentará reiniciar de acordo com o estabelecido nas regras de Restart.
EnvironmentFile=/etc/hubot/variaveis.conf
Como meu script possui várias variáveis, eu preferi carregá-las em um arquivo separado. Defina suas variáveis nele.
ExecStart=/home/butis/hubot/bin/hubot -a rocketchat
Comando de execução do script. Coloque o path inteiro.
[Install]
WantedBy=multi-user.target
Terminado o arquivo, execute um reload nas confs do systemd:
systemctl daemon-reload
E inicie o serviço
systemctl start hubot
Podemos deixar que ele inicie junto com os outros serviços:
systemctl enable hubot
Prontinho. Com esse modelo vocês já podem colocar qualquer script pra rodar como serviço sem dor de cabeça. Como informação adicional, recomendo a leitura de um documento da Red Hat, muito bem explicado por sinal:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html
E um guia pra quem ainda tem medo do systemd
E isso aí. Abraços!
Posts populares
-
Todo celular GSM possui o International Mobile Equipment Identity conhecido como (IMEI), um número de identificação do aparelho com 15 algar...
-
Mesmo sabendo das várias cagadas que o google faz, ainda tenho de tirar o chapéu para eles. Outro dia estava eu querendo saber quanto ficari...
-
Pra quem curte imagens como eu, vale a pena seguir o link :) http://s202.photobucket.com/albums/aa260/rauhmaru/distros/ As imagens vieram do...
-
Sobre O Slack é uma ferramenta sensacional! O Slack é um software de comunicação de equipes com suporte a canais, conversas privadas, inte...