AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 410811
Accepted
Somenath Sinha
Somenath Sinha
Asked: 2017-12-15 00:17:52 +0800 CST2017-12-15 00:17:52 +0800 CST 2017-12-15 00:17:52 +0800 CST

Diferença entre modprobe e sysctl -w em termos de configuração de parâmetros do sistema?

  • 772

Sabemos que o comando sysctl pode alterar os parâmetros do kernel com:

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

ou editando diretamente o arquivo no /proc/sysdiretório. E para alterações persistentes, os parâmetros devem ser gravados em /etc/sysctl.d/<moduleName>.confarquivos como:

# echo kernel.domainname="example.com" > /etc/sysctl.d/domainname.conf

No entanto, também podemos alterar os parâmetros do kernel usando o comando modprobe:

# modprobe kernel domainname="example.com"

E há o arquivo modprobe.conf nos /etc/modprobe.ddiretórios, que está presente em vários locais: /etc/modprobe.de /usr/lib/modprobe.d. Ele contém vários .confarquivos e as opções podem ser fornecidas no arquivo conf apropriado para o módulo como:

options kernel domainname="example.com"

Então, qual é a diferença entre cada um desses métodos? Qual método deve ser usado em quais circunstâncias específicas?

kernel sysctl
  • 1 1 respostas
  • 1602 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2017-12-15T01:12:24+08:002017-12-15T01:12:24+08:00

    Tanto quanto eu sei, você pode usar modprobepara ajustar os parâmetros somente quando o recurso em questão foi compilado como um módulo - e você está carregando o módulo em primeiro lugar. Para definir os parâmetros do módulo persistentemente, você terá o /etc/modprobe.ddiretório. (Geralmente você deve deixar /usr/lib/modprobe.dpara as configurações padrão da distribuição - quaisquer arquivos lá podem ser substituídos por atualizações de pacotes.)

    Se o módulo em questão foi criado no kernel principal, você deve usar a <module_name>.<parameter_name>=<value>sintaxe, geralmente como uma opção de inicialização. Se o parâmetro em questão estiver disponível como sysctlconfiguração, você também pode usar o sysctl -wcomando para ajustá-lo.

    Todos os parâmetros sysctl disponíveis são apresentados em /proc/sys: por exemplo, kernel.domainnameis at /proc/sys/kernel/domainname. Nem todos os parâmetros do módulo estão disponíveis como sysctls, mas alguns podem estar.

    Se um módulo carregável já foi carregado e você deseja alterar seus parâmetros imediatamente sem descarregá-lo, pode gravar o novo valor em /sys/module/<module_name>/parameters/<parameter_name>. Se o módulo não puder aceitar reconfiguração dinâmica para aquele parâmetro, o arquivo será somente leitura.

    Pelo menos no meu sistema, kernel.domainnameé um parâmetro sysctl para o kernel principal, e tentar alterá-lo modprobenão funcionará:

    # sysctl kernel.domainname
    kernel.domainname = (none)
    # modprobe kernel domainname="example.com"
    modprobe: FATAL: Module kernel not found in directory /lib/modules/<kernel_version>
    # sysctl kernel.domainname
    kernel.domainname = (none)
    

    Resumindo: Se você não tiver certeza, primeiro olhe para /proc/sysou a saída de sysctl -a: se o parâmetro que você está procurando não estiver lá, não é um parâmetro sysctl e provavelmente é um parâmetro de módulo (ou o módulo que forneceria o sysctl não está carregado no momento, caso em que é melhor definir o valor como um parâmetro de módulo de qualquer maneira - tentar definir um sysctl pertencente a um módulo que não está carregado no momento apenas produzirá um erro).

    Em seguida, descubra a qual módulo o parâmetro pertence. Se o módulo estiver embutido no kernel, você provavelmente terá que usar uma opção de boot; se for carregável com modprobe(ou seja, o respectivo <module>.koarquivo existe em algum lugar na /lib/modules/<kernel version>/árvore de diretórios), você pode usar modprobee/ou /etc/modprobe.d/.

    • 7

relate perguntas

  • Como /proc/net/wireless é um "clone" de /proc/net/dev?

  • Danos no kernel do Linux Mint

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

  • Acesse o sistema de arquivos como usuário root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve