Escrevendo arquivos de serviço básicos do systemd
Estou desenvolvendo um aplicativo Nodejs com o qual o usuário interage via HTTP no host local. Praticamente não há parâmetros e o daemon praticamente não tem dependências e só precisa estar ativo no tempo de logon.
Eu gostaria de seguir os idiomas em cada plataforma para scripts de inicialização, e isso significa Upstart no Ubuntu e systemd no Fedora.
Existem bons tutoriais para escrever arquivos de sistema systemd?
Existem 'boas práticas' a serem observadas?
Encontrei estes recursos:
Página wiki do Fedora sobre systemd
Blog sobre como gravar arquivos de sistema systemd
Systemd na Wikipedia
Estou procurando principalmente uma API de tipos como referência, bem como um formato básico a seguir.
A página da Wiki do Arch Linux sobre systemd tem uma seção interessante sobre como gravar arquivos de serviço.
— Rudy Matela
> man systemd.service>> man systemd.unit
— truezion
Eu começaria com as páginas de manual do Systemd . Eles representam um recurso abrangente do sistema e serviços.
Há também as perguntas frequentes do freedesktop Systemd .
As páginas de manual serão úteis (eu gostaria que fosse mais limpo), mas existe um tutorial básico sobre arquivos de sistema? Como quais peças são necessárias, quais são recomendadas e quais são opcionais. As páginas de manual parecem assumir que eu já sou especialista em arquivos de sistema systemd, o que não sou.
Não que eu esteja ciente, infelizmente. Provavelmente, existe uma suposição de que, se você estiver escrevendo initscripts, já sabe como escrever initscripts. Olhe através dos scripts de Arco e escolher um que é semelhante ao que você precisa: archlinux.org/packages/community/i686/systemd
Obrigado! Com sua ajuda e o blog que encontrei, consegui trabalhar com um básico. O Systemd parece muito melhor do que o iniciante ou o antigo daemon systemv init.
Quem tem tempo lá vive para começar com isso. Quero dizer, se você sabe o que está fazendo, é uma ótima referência, mas, vaca sagrada, as páginas do manual são complexas.
— 27616 Jonathan Komar #
@ macmadness86 O OP estava procurando uma fonte autorizada (veja o último parágrafo); para a maioria das necessidades, ler o arquivo de serviço de um aplicativo semelhante e consultar partes específicas da manpágina será mais que suficiente para chegar lá. Eles são realmente bem diretos.
O exemplo a seguir é inspirado nesse link, que na verdade não menciona todas as etapas e é listado apenas para creditar a fonte: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html
Etapa 1 : Criei este arquivo (local da nota) que essencialmente dispara um processo bash com um argumento estendido. Você pode disparar seu próprio comando, que pode ser diferente do bash.
Recarregar systemd:
(Da mesma forma que você pode disable)
(opcional) Etapa 3 : deve iniciar automaticamente na próxima reinicialização no modo multiusuário (nível de execução 3), mas se você deseja iniciá-lo imediatamente:
Atualização: Para completar, devo acrescentar que o ubuntu bionic parece ter uma página de manual muito completa. RTFM aqui
Obrigado por postar um tutorial rápido e não apenas vincular a páginas de manual externas!
systemctl possui um atalho de comando cat, para referência.
— Andy Bettisworth
Qual é o atalho do comando cat? Como uma maneira de criar e editar os arquivos de controle do systemd sem inserir o caminho inteiro?
quais são as permissões que esse arquivo deve ter idealmente?
De acordo com a página de manual systemd.unit, você deve colocá-lo /etc/systemd/system. / usr / lib / systemd é onde os pacotes de distribuição apropriados colocam seus arquivos.
— Wbkang 29/05
A documentação do Redhat é uma ótima fonte.
CRIANDO E MODIFICANDO ARQUIVOS DE UNIDADE DO SISTEMA no RHEL7
GERENCIANDO SERVIÇOS COM SYSTEMD | Introdução ao systemd
@StephenRauch Eu sei que links simples não são muito bem-vindos, mas esse é um tópico enorme e não é fácil resumir em uma resposta.
Este foi o guia mais legível que encontrei. Esta é uma boa resposta. :-)
DigitalOcean também tem um conjunto muito abrangente de tutoriais e documentação associada: digitalocean.com/community/tutorials/...