Estou usando o Archlinux e comecei a tentar o systemd hoje em dia.
No entanto, descobri que o systemd não carrega meu script /etc/rc.local.
Como mencionado na página do Wiki, eu corri systemctl enable rc-local.service
, mas isso não ajudou.
O conteúdo do meu arquivo /etc/rc.local é:
echo -n 120 > /sys/devices/platform/i8042/serio1/speed
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
iptables --table nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
Alguma sugestão?
arch-linux
Felix Yan
fonte
fonte
/etc/systemd/system/multi-user.target.wants/rc-local.service
e/lib/systemd/system/rc-local.service
systemctl enable rc-local.service
. Se você continuar tendo problemas, publique a saída desystemctl status rc-local.service
.multi-user.target.wants
é exatamente o que o habilita .Com o systemd 188-2, o systemd reclama de não ter uma
[Install]
seção e, como tal, não conseguir ativar o serviço rc.local. Pode ter sido o caso de versões anteriores, mas desde que os desenvolvedores do Arch anunciaram recentemente o systemd se tornará o padrão, estou corrigindo meu sistema.Para corrigir isso, basta adicionar uma seção para o destino multiusuário em
/etc/systemd/system/rc-local.service
:Crie o
/etc/rc.local
script e torne-o executável comchmod +x /etc/rc.local
fonte
rc-local.service
nunca foi um serviço que foi ativado via,systemctl enable
mas desde 2011 é um serviço ativado automaticamente por um gerador . No entanto, o Arch Linux, conforme explicado em unix.stackexchange.com/a/471871/5132 , não ativa as opções de compatibilidade com versões anteriores no systemd que fornecem o gerador em primeiro lugar.O Pkgfile (no meu sistema) diz:
Esse pacote instala outras coisas que você pode não querer, mas você pode desativá-lo. Veja também: https://wiki.archlinux.org/index.php/Systemd#The_initscripts-systemd_package
fonte
Não se esqueça de tornar o rc.local executável - ou a camada de compatibilidade não o executará! Nos exemplos acima, listados - você executaria chmod a + x para tornar o arquivo rc.local executável. Do seguinte modo:
Eu acho que outro possível problema é a localização do seu script rc.local! Se você ainda não adicionou a compatibilidade ao systemd (que deve estar embutido - e parece já ter sido mencionado), talvez seja necessário verificar novamente a localização dos arquivos ... No meu sistema operacional, tenho rc-local em /etc/rc.d/rc.local, executei o seguinte:
fonte
systemd
arquivo de serviço executável, como mostra seu primeiro trecho de código. Além disso, no Arch Linux, o caminho do arquivo é/etc/rc.local
- talvez o conteúdo dosystemd
arquivo de serviço esteja incorreto.Duas dicas comuns:
Não se esqueça de tornar
/etc/rc.d/rc.local
executável. Você pode usarpara torná-lo executável.
Não se esqueça de colocar uma
#!/bin/sh
linha na primeira linha de/etc/rc.d/rc.local
. Aqui está como as coisas devem ficar:Se você não obtiver resultados semelhantes, edite
/etc/rc.d/rc.local
para adicionar uma linha no topo contendo apenas#!/bin/sh
.fonte
Se você tiver
/etc/rc.local
um arquivo executável, ele será puxado para o processo de inicialização porsystemd-rc-local-generator
/rc-local.service
.Pelo menos
/etc/rc.local
é o caminho padrão usado, mas é definido pela distribuição. Porque é principalmente para compatibilidade com versões anteriores, e diferentes distribuições estavam usando caminhos diferentes. Por exemplo, no Fedora, o caminho é/etc/rc.d/rc.local
. Você pode verificar o caminho da seguinte maneira:Parece que isso não é muito conhecido. Existem várias postagens que mostram uma versão anterior do arquivo, que não possui esse comentário.
fonte