Qual é o caminho certo para definir os parâmetros de tempo de execução do kernel do Linux?

4

Qual é o caminho prescrito para definir os parâmetros de tempo de execução do kernel do Linux? Eu vi algumas vezes que as pessoas configuram esses arquivos como /etc/rc.local .

Este é realmente o jeito certo de fazer isso?

    
por slm 13.01.2014 / 03:26

1 resposta

5

Você pode usar sysctl para definir alguns dos parâmetros do kernel, especificamente os que estão abaixo de /proc/sys . Estes podem ser definidos no arquivo /etc/sysctl.conf ou adicionados a um único arquivo (o método preferido em algumas distro, como o Fedora) no diretório /etc/sysctl.d . Em distros que têm este diretório, é para customização.

trecho da página man do sysctl

   sysctl - configure kernel parameters at runtime

Exemplo

Você pode obter uma lista parcial de quais parâmetros do kernel estão atualmente definidos usando este comando:

$ sudo sysctl -a | head -5
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0

Fazendo uma alteração

/etc/sysctl.conf

Basta adicionar regras ao arquivo sysctl.conf .

# sysctl.conf sample
#
kernel.domainname = example.com
; this one has a space which will be written to the sysctl!
kernel.modprobe = /sbin/mod probe

Você também pode usar a linha de comando sysctl.conf para editar este arquivo sem precisar editá-lo diretamente.

$ sysctl -w kernel.domainname="example.com"

Após fazer alterações, certifique-se de ativá-las.

$ sysctl -p

/etc/sysctl.d

Para adicionar sua substituição a esse parâmetro, basta colocá-lo em um arquivo com nome semelhante aos arquivos que já estão presentes no diretório /etc/sysctl.d .

$ ls -l /etc/sysctl.d
total 40
-rw-r--r-- 1 root root   77 Jul 16  2012 10-console-messages.conf
-rw-r--r-- 1 root root  490 Jul 16  2012 10-ipv6-privacy.conf
-rw-r--r-- 1 root root  726 Jul 16  2012 10-kernel-hardening.conf
-rw-r--r-- 1 root root 1184 Jul 16  2012 10-magic-sysrq.conf
-rw-r--r-- 1 root root  509 Jul 16  2012 10-network-security.conf
...

Em um arquivo chamado algo como 99-myparam.conf .

$ more 10-console-messages.conf 

# the following stops low-level messages on console
kernel.printk = 4 4 1 7

Onde o nome do parâmetro está à esquerda e seu valor correspondente está à direita.

Veja a man page de sysctl para mais detalhes.

    
por 13.01.2014 / 03:27