Estou criando um pequeno pacote Debian para instalar arquivos unitários do systemd, especificamente *.service
files.
Meu pacote se parece com:
myservice
|
|--debian
|- comapat
|- preinst
|- postinst
|- rules
|- myservice.service
Quando eu instalo meu pacote, os serviços do systemd são desativados automaticamente e não são iniciados.
Logo após a instalação, systemctl status myservice
mostra
root@ubuntu-xenial:~# systemctl status myservice
● myservice.service - My Service - echos output and says when it started
Loaded: loaded (/lib/systemd/system/myservice.service; disabled; vendor preset: enabled)
Active: inactive (dead)
No entanto, quando eu instalo meu pacote sem um postinst
script , os serviços do systemd são ativados automaticamente e iniciam após a instalação.
root@ubuntu-xenial:~# systemctl status myservice
● myservice.service - MyService - echos output and says when it started
Loaded: loaded (/lib/systemd/system/myservice.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-02-09 15:06:36 UTC; 10s ago
Main PID: 5024 (sh)
Tasks: 2
Memory: 172.0K
CPU: 1ms
CGroup: /system.slice/myservice.service
├─5024 /bin/sh -c echo 'myservice.service started' && echo $(date +%s) && sleep infinity
└─5026 sleep infinity
Estou confuso porque meu postinst é "pequeno e burro":
#!/bin/sh -e
# POSTINST script for intera
set -e
echo "3[36m HI I'M A POSTINST SCRIPT 'date +"%s"' 3[39m"
Por que a presença de um postinst sobrescreve a "habilitação e início automáticos" de um serviço systemd?
Que parte do debhelper lida com isso e o que estou perdendo?
Ou o que devo adicionar ao meu script postinst
maintainer para que meus serviços sejam instalados e executados na instalação?
NOTAS: Meu ambiente é uma pequena caixa vagabunda com um provedor de caixa virtual. Estou usando a caixa Vagrant do ubuntu-xenial64 . Não tenho certeza se esse ambiente afeta isso.