Leitura adicional

Leitura adicional

Estou convertendo um arquivo de estilo de inicialização SysV em um arquivo de unidade Systemd e seu bloco de seção de inicialização se parece com isto:

### BEGIN INIT INFO
# Provides:          ifcheck 
# Required-Start:    $local_fs 
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     S
# Default-Stop:      
# Short-Description: Network interfaces check & replace
# Description:       Checks if the interfaces were corrupted or if the special section is missing. If so, a default version will be copied over.
### END INIT INFO

Eu sei que os níveis de execução 0-6 correspondem a vários alvos do systemd:

╔══════════════════════╦═══════════════════╗
║ Run Level (SysVinit) ║  Systemd Target   ║
╠══════════════════════╬═══════════════════╣
│ Run level 0          │ poweroff.target   │
├──────────────────────┼───────────────────┤
│ Run level 1          │ rescue.target     │
├──────────────────────┼───────────────────┤
│ Run level 2          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 3          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 4          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 5          │ graphical.target  │
├──────────────────────┼───────────────────┤
│ Run level 6          │ reboot.target     │
├──────────────────────┼───────────────────┤
│ Emergency            │ emergency.target  │
└──────────────────────┴───────────────────┘
(According to https://www.tecmint.com/change-runlevels-targets-in-systemd/ )

Mas eu nunca vi Sum nível de execução antes. eu tenho vistoalgumas definições que dizem que é para usuário únicoenquantohá outros que o definem como sinônimo de outros níveis de execuçãoe aindaoutros não têm uma definição conclusiva.

Eu sei que a versão com a qual estou trabalhando é provavelmente aEspecificação de base padrão do Linuxporque imediatamente após o bloco de informações de inicialização é a origem doFunções de inicialização lsb(Fornecido por . /lib/lsb/init-functions). Além disso, o sistema está rodando Debian 8 Jessie.

Qual destino devo colocar no arquivo de unidade systemd equivalente para o nível de execução S?

Responder1

Snão tem correspondência direta no systemd. O systemd-sysv-generatorprograma não suporta esses rcscripts de van Smoorenburg.

Debiancostumava teruma versão corrigida desse programa que agrupava um rcscript usado Sdentro de uma unidade de serviço sem dependências padrão e que era procurado por sysinit.target. Isso era imperfeito, mas entãotodosda operação de systemd-sysv-generatoré imperfeita, porque não existe uma maneira mecanicista que sirva para todos para traduzir rcos scripts de van Smoorenburg.

O pessoal do sistema Debian eliminou o patch em julho de 2016, quando acreditaram que todos os rcscripts van Smoorenburg usados ​​​​no Debian Shaviam sido substituídos por unidades de serviço adequadas. O seu parece ser cultivado em casa.

Nesse caso, é melhor esquecer completamente o Snível de execução. Meu palpite, baseado apenas na descrição, é que o que você realmente deveria fazer é uma unidade de serviço que seja:

Dependências padrão = não
Depois=local-fs.target
Antes = rede-pre.target
Quer = rede-pre.target
e isso é Wanted-Byalgo adequado, possivelmente basic.target.

Dependendo do que o seu serviço realmente faz, fazer pedidos posteriores local-fs.targetpode ser um exagero. Mas isso é algo que só você pode determinar.

Leitura adicional

informação relacionada