在我的 Android 设备上,有一个名为/proc/net/unixwho's content的文件 不符合任何标准linux 发行版的文件(显示 unix 域套接字。)前几行:
Num RefCount Protocol Flags Type St Inode Path
00000000: 00000002 00000000 00000000 0002 01 5287581 /data/misc/wifi/sockets/wpa_ctrl_789-3189
00000000: 00000003 00000000 00000000 0001 03 6402 /dev/socket/qmux_radio/qmux_client_socket 297
00000000: 00000002 00000000 00010000 0001 01 7180 /dev/.secure_storage/ssd_socket
00000000: 00000002 00000000 00010000 0001 01 6424 /dev/socket/cnd
00000000: 00000002 00000000 00010000 0001 01 6400 @QMulticlient
...
Run Code Online (Sandbox Code Playgroud)
(1) 这些不同的列代表什么?
编辑:好的,我发现了这个:
这里'Num'是内核表槽号,'RefCount'是套接字的用户数,'Protocol'当前始终为0,'Flags'代表保持套接字状态的内部内核标志。当前,类型始终为“1”(内核尚不支持 Unix 域数据报套接字)。'St' 是套接字的内部状态,Path 是套接字的绑定路径(如果有)。
但是,这不是最新的,因为我们有一个type并且没有澄清“内部状态”的含义。
(2) 同样在路径的末尾,有时会有一个没有自己列名的附加数字。那是什么?
此外,我可以在内核源代码中的哪个位置找到它的创建位置? …
我试图让hexdump命令的输出看起来与hexedit默认值类似。我一直在使用格式字符串-e,但由于没有很好的文档,可以直观地描述如何使用它,所以我无法正确使用它。
目前,我有:
# hexdump -C -n 0x100 m1.bin
00000090 00 00 00 00 00 56 08 00 00 00 00 00 04 00 00 00 |.....V..........|
000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
Run Code Online (Sandbox Code Playgroud)
但我希望在 4 个字节之间多一个空格,如下所示:
00000090 00 00 00 00 00 56 08 00 00 00 00 00 04 00 00 00 |.....V..........|
000000a0 00 00 00 00 00 00 00 00 …Run Code Online (Sandbox Code Playgroud) 当我启动 Raspberry Pi3 (4.14.34-v7+) 时,启动后在 dmesg 和其他日志中发现以下错误。但是,我当前没有使用triggerhappy,因此可能会禁用该服务。但如果我将来想使用,我想知道是什么导致了该错误。
systemd-udevd[157]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)
systemd 服务中有两个条目:
systemctl status triggerhappy.service
systemctl status triggerhappy.socket
Run Code Online (Sandbox Code Playgroud)
尝试执行的代码似乎来自
/lib/udev/rules.d/60-triggerhappy.rules::
为什么在启动过程中会失败?
(不过好像要稍后运行...)
android ×1
boot ×1
filesystems ×1
hexdump ×1
proc ×1
raspberry-pi ×1
systemd ×1
triggerhappy ×1
udev ×1
unix-sockets ×1