Esqueça sobre rc.local
.
Você está usando o CentOS 7. Você tem o systemd. /etc/rc.local
é um mecanismo de compatibilidade com versões anteriores no systemd, porque é um mecanismo de compatibilidade com versões anteriores para um mecanismo que era ele mesmo um mecanismo de compatibilidade no System 5 rc
. E como mostrado pela confusão na questão AskUbuntu com hiperlink abaixo, usar /etc/rc.local
pode dar errado. Então, faça uma unidade de serviço apropriada.
Primeiro, crie uma unidade de serviço de modelo . Por exemplo, vamos chamá-lo de /etc/systemd/system/[email protected]
:
[Unit] Documentation=https://unix.stackexchange.com/questions/247436/ Description=Set custom read-ahead on storage device %I BindsTo=dev-%i.device [Service] Type=oneshot ExecStart=/sbin/blockdev --setra 128 /dev/%I
Providencie para que a unidade de serviço seja iniciada pelo gerenciador de dispositivos plug-and-play (udev) quando os dispositivos apropriados chegarem. Sua regra, que você terá que adaptar às suas necessidades específicas, será parecida com:
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ENV{SYSTEMD_WANTS}="custom-readahead@%k"
A configuração SYSTEMD_WANTS
faz com que o udev inicie o serviço nomeado - uma instanciação do modelo no dispositivo %k
. Este serviço, então, executa blockdev
.
Aparentemente, há outra maneira de fazer isso, que depende da capacidade do udev de definir essas configurações diretamente. Para isso, você não precisa da unidade de modelo systemd nem dos serviços instanciados. Em vez disso, simplesmente instrua o udev diretamente em sua regra:
SUBSYSTEM=="block", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="128"
Observe a diferença entre ==
e =
.
Não há rc.local
envolvido em qualquer lugar, de qualquer forma.
Leitura adicional
- link
- link
- link
- Milosz Galazka (2015-05-11). Como impor o modo somente leitura em todos os dispositivos de armazenamento USB conectados . sleeplessbeastie.
- link