Isso foi solicitado por outra pergunta em outro lugar , que depois de pesquisar brevemente uma rápida pesquisa on-line ("prioridade de substituição da linha de comando do kernel linux" e algumas variações) não resultou em absolutamente nada.
O problema é que /proc/cmdline
indica que um parâmetro foi incluído duas vezes com valores diferentes. Minha pergunta NÃO é sobre por que isso acontece ou como isso pode acontecer , é qual deles tem precedência. Em outras palavras, dado isso como uma linha de comando:
foo=12 console=tty1 foo=16
Se foo
é uma configuração que não pode ter dois valores de forma significativa, existe alguma convenção para qual se aplica?
Não tenho certeza se está documentado explicitamente no kernel, mas a análise da linha de comando de inicialização específica do x86 inclui este comentário:
Isso permite que os usuários adicionem configurações ao final de sua linha de comando sem se preocupar com nenhum valor anterior na linha de comando.
Observar o código de análise genérico confirma isso: os parâmetros são lidos um após o outro e qualquer valor definido por um parâmetro duplicado é substituído pela última instância.
No seu exemplo,
foo=16
ganha.Observe que as ferramentas que analisam
/proc/cmdline
têm seu próprio comportamento e podem não seguir a convenção do kernel.