Antecedentes
Primeiro, isso não é tecnicamente network.service
, mas sim network.target
. Observe quando procuramos por um desses arquivos em uma caixa do CentOS 7 que encontramos apenas o arquivo network.target
.
$ locate network.service
$
$ locate network.target
/usr/lib/systemd/system/network.target
$
Você pode obter descrições de arquivo de unidade do systemd diretamente do systemd por meio do comando systemctl
. Por exemplo:
$ systemctl show network | grep -i description
Description=LSB: Bring up/down networking
Se você observar a saída de systemctl status ...
, observe que esta descrição é mostrada lá:
$ systemctl status network
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2018-09-03 21:49:05 EDT; 2 days ago
Docs: man:systemd-sysv-generator(8)
Process: 809 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Observe também que há uma referência à documentação na forma de uma página man.
man systemd-sysv-generator
systemd-sysv-generator is a generator that creates wrapper .service units for SysV init[1] scripts in /etc/init.d/* at boot and when configuration of the system manager is reloaded. This will allow systemd(1) to support them similarly to native units. LSB headers[2] in SysV init scripts are interpreted, and the ordering specified in the header is turned into dependencies between the generated unit and other units. LSB facilities "$remote_fs", "$network", "$named", "$portmap", "$time" are supported and will be turned into dependencies on specific native systemd targets. See systemd.special(5) for more details. SysV runlevels have corresponding systemd targets (runlevelX.target). Wrapper unit that is generated will be wanted by those targets which correspond to runlevels for which the script is enabled. systemd does not supports SysV scripts as part of early boot, so all wrapper units are ordered after basic.target. systemd-sysv-generator implements systemd.generator(7).
systemd-sysv-generator
constrói alvos & serviços baseados em scripts init SysV existentes. Nesse caso, o script de inicialização que o systemd está "envolvendo" é esse arquivo - /etc/rc.d/init.d/network
.
Propósito
Em termos do que esse arquivo de unidade faz, é o que traz as interfaces de rede especificadas em /etc/sysconfig/network
. Este é um diretório usado anteriormente que a maioria das distros baseadas no Red Hat usadas antes do NetworkManager e systemd existiam.
O Systemd está atualizando quaisquer interfaces de rede definidas neste diretório como uma forma de permanecer compatível com o modo como as versões anteriores do Red Hat (CentOS, Fedora, & RHEL) se comportavam.