Linux 魔法 SysRq 键中的 176 是什么意思

Linux 魔法 SysRq 键中的 176 是什么意思

这是设置的值Ubuntu 22.04

root@test:~# cat /proc/sys/kernel/sysrq
176

我无法从此链接找到该值:

https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html

这是什么意思?

答案1

为了解释 SysReq 值,您需要将其转换为二进制,
然后检查哪些“位”1指示相应的功能是否启用。

输入例如

$ python -c 'print( bin(176) )'
0b10110000

0b... 在 bash 提示符下,将告诉以 a (表示“二进制”)开头的位。
注意:从右侧开始,1第一个位的值,然后2是下一个位的值,将每个向左步骤的值加倍。

如果您希望打印实际的位值,则需要更多的代码;

$ cat cvt.py 
#!/bin/env python

import sys

b=bin(int(sys.argv[1])).replace("0b","")
v=2**(len(b)-1)
for bit in b: 
  print( f"{v:>4}", "bit" if bit=="1" else "bit, not included" )
  v=v//2

执行结果显示如下:

$ python cvt.py 176
 128 bit
  64 bit, not included
  32 bit
  16 bit
   8 bit, not included
   4 bit, not included
   2 bit, not included
   1 bit, not included

所以,176意味着

 16 =  0x10 - enable sync command
 32 =  0x20 - enable remount read-only
128 =  0x80 - allow reboot/poweroff

...功能已启用。

注:16+32+128=176

$ echo ' 16+32+128' | bc
176

相关内容