Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução ao systemd

Introdução ao systemd

Nessa apresentação conto brevemente a história por trás do init e falo um pouco sobre o sysmted, o init padrão da maioria das distros modernas. No finalzinho mostro que não é um bicho de 7 cabeças você fazer da sua aplicação um serviço no systemd.

Avatar for Daniel Libanori

Daniel Libanori

September 10, 2016
Tweet

More Decks by Daniel Libanori

Other Decks in Programming

Transcript

  1. SysV-style init • initialization • daemon • PID 1 •

    “pai de todos” • runlevels • sequencial/serial
  2. inits? • BSD • System V • Service Management Facility

    (Solaris) • launchd (OS X) • Upstart (Ubuntu até 12.10) • systemd (Maioria das distros modernas)
  3. systemd • system + daemon • 6 anos • Lennart

    Poettering e Kay Sievers • RedHat • maioria das distros modernas: Arch Linux, CentOS, CoreOS, Debian, Fedora, Mageia, openSUSE, Red Hat EL, Ubuntu
  4. Características ✓ daemon ✓ PID 1 ✓ “pai de todos”

    ✓ runlevels ̣ concorrente/paralelo ̣ + que um replacement do init
  5. Funções • Gerenciar o sistema e seus serviços • Plataforma

    de software • Camada entre aplicações e o kernel
  6. Mais que um init • journald: trata de logs •

    logind: gerencia sessões do usuário • networkd: configura a rede • udevd: trata dispositivos • cron, at e outros serviços • +69 binários
  7. Configurando um serviço • Criar o unit file • Instalar

    o serviço • Levantar o serviço • Testar!
  8. Unit File • Seções: Unit, Tipo e Install • Unit:

    informações genéricas independentes do tipo • Install: informações sobre como a unidade deve ser instalada no sistema • Tipos: service, socket, device, mount, automount, swap, target, path, timer, snapshot, slice and scope
  9. # /lib/systemd/system/hello.service [Unit] Description=Hello World from systemd After=syslog.target network.target [Service]

    Type=simple WorkingDirectory=/root/hello_world ExecStart=/usr/bin/rails s -b 0.0.0.0 RestartSec=1 Restart=on-failure StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
  10. # systemctl enable hello # systemctl start hello # netstat

    -tnlp # kill -9 2288 # netstat -tnlp # systemctl stop hello # netstat -tnlp