这是设置的值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