O que é a “ordem de classificação C” na página de manual do pm-action? [duplicado]

1

A partir da página de manual pm-action(8) :

/etc/pm/sleep.d, /usr/lib/pm-utils/sleep.d

Programs in these directories (called hooks) are combined and executed in C sort order before suspend and hibernate with as argument ´suspend´ or ´hibernate´.

Afterwards they are called in reverse order with argument ´resume´ and ´thaw´ respectively.

If both directories contain a similar named file, the one in /etc/pm/sleep.d will get preference. It is possible to disable a hook in the distribution directory by putting a non-executable file in /etc/pm/sleep.d, or by adding it to the HOOK_BLACKLIST configuration variable.

O que é "ordem de classificação C"?

Será que "um arquivo nomeado similar" significa dois arquivos com o mesmo nome do arquivo?

Eu tenho dois arquivos /usr/lib/pm-utils/sleep.d/94cpufreq e /etc/pm/sleep.d/20_cpu_freq . Quando retomar e descongelar, qual deles é executado primeiro e qual segundo?

Obrigado.

    
por Tim 03.04.2018 / 00:37

1 resposta

3

A ordem de classificação lexical é muito simples: caracteres com um valor numérico menor são ordenados antes dos caracteres com um valor mais alto. Como quase todos os sistemas derivados do UNIX atualmente usam conjuntos de caracteres derivados do ASCII estendidos , a ordenação seria, portanto, de 8 bits da seguinte forma:

  • Caracteres de controle: NUL-US ( ^@ - ^_ : 0-26)
  • Caracteres para impressão: (espaço) - / , 0 - 9 , : - @ , A - Z , [ - ' , a - z , { - ~
  • Caracteres estendidos: coisas posteriores (depende da página de códigos)

Por causa disso, aqui estão alguns nomes de arquivos, na ordem:

!afile
0Afile
0_file
0afile
0~file
20-cpu_freq
20_cpu_freq
94Cpufreq
94cpufreq

Por "arquivo com nome similar", as duas listas de diretórios são combinadas, e se dois arquivos tiverem o mesmo nome, o em /etc/pm/sleep.d ganha: se você tivesse /usr/lib/pm-utils/sleep.d/94cpufreq e /etc/pm/sleep.d/94cpufreq , o último seria lido .

A ordem em que estes serão executados é ditada pela operação que o pm-utils está fazendo (de HOWTO.hooks ):

SLEEP.D SPECIFIC NOTES

For any given sleep/wakeup cycle, the hooks in sleep.d are run twice:

  • Once in C lexical sort order before the system goes to sleep, and
  • Once in reverse C lexical sort order when the system wakes up.

TL; DR: 20_cpu_freq será executado primeiro e 94cpufreq segundo quando se preparar para dormir, e vice-versa ao acordar.

    
por 03.04.2018 / 06:20