pm-action 联机帮助页中的“C 排序顺序”是什么?

pm-action 联机帮助页中的“C 排序顺序”是什么?

来自联机帮助页pm-action(8)

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

这些目录中的程序(称为钩子)被组合起来并在以下位置执行:C排序顺序在挂起和休眠之前,以“挂起”或“休眠”作为参数。

之后,分别使用参数“resume”和“thaw”以相反的顺序调用它们。

如果两个目录都包含一个类似的命名文件,其中的一位/etc/pm/sleep.d将获得优先权。可以通过将不可执行文件放入 中 /etc/pm/sleep.d或将其添加到HOOK_BLACKLIST 配置变量来禁用分发目录中的挂钩。

什么是“C排序”?

“一个相似的命名文件”是否意味着两个文件相同的文件名?

我有两个文件/usr/lib/pm-utils/sleep.d/94cpufreq/etc/pm/sleep.d/20_cpu_freq.恢复解冻时,先运行哪一个,再运行哪一个?

谢谢。

答案1

C 词汇排序顺序非常简单:数值较小的字符排在数值较大的字符之前。现在几乎所有 UNIX 派生系统都使用扩展的 ASCII 派生字符集,因此排序将是 8 位,如下所示:

  • 控制字符:NUL-US(^@- ^_:0-26)
  • 可打印字符:(空格)- /, 0- 9, :- @, A- Z, [- `, a- z, {-~
  • 扩展字符:之后的内容(取决于代码页)

因此,这里有一些文件名,按顺序排列:

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

通过“相似命名文件”,两个目录列表被合并,如果两个文件具有相同的名称,则获胜/etc/pm/sleep.d:如果您有/usr/lib/pm-utils/sleep.d/94cpufreq/etc/pm/sleep.d/94cpufreq,则将读取后者。

这些运行的顺序由pm-utils正在执行的操作决定(从HOWTO.hooks):

SLEEP.D 具体注释

对于任何给定的睡眠/唤醒周期,中的挂钩sleep.d会运行两次:

  • 在系统进入睡眠状态之前按 C 词法排序顺序进行一次,并且
  • 一旦系统唤醒时按反向 C 词法排序顺序。

长话短说: 20_cpu_freq准备睡觉时将首先运行,94cpufreq第二次运行,醒来时则相反。

相关内容