exec -- /system/bin/ls -l /dev/block/by-name/ >> /dev/kmsg
时间: 2023-08-18 11:09:12 浏览: 44
这一行命令会在 Android 系统启动时执行,在 /system/bin/ls 命令执行完成后,将输出结果追加到内核日志缓冲区中。如果该命令在 init.rc 中的位置和执行时机都正确,且内核日志缓冲区没有被占满,则该命令会执行成功,并将输出结果写入内核日志缓冲区中。需要注意的是,该命令的执行结果只会被写入内核日志缓冲区,不会被写入到文件系统中,因此无法被普通的文件读写操作获取。如果需要查看该命令的输出结果,可以使用 dmesg 命令或者查看 /proc/kmsg 文件。
相关问题
exec -- /sysetm/bin/init | write /dev/kmag
这条命令的意思是将 `/system/bin/init` 进程的标准输出重定向到 `/dev/kmsg` 设备中,以便记录系统日志。
具体来说,`exec` 命令用于替换当前进程的映像,这里将当前进程替换为 `/system/bin/init` 进程。`--` 参数告诉 shell 停止解析后续参数,从而避免参数中包含特殊字符时出现问题。然后,`|` 管道符将 `/system/bin/init` 进程的标准输出重定向到 `write` 命令中,最终将输出写入到 `/dev/kmsg` 设备中。
需要注意的是,这条命令需要在 root 用户权限下执行,否则可能会出现权限不足的错误。
执行完exec的结果能使用管道放到/dev/kmsg中嘛
在Android的init.rc文件中,可以使用管道将命令的输出写入到/dev/kmsg文件中,以便将输出信息记录在内核日志中。具体操作步骤如下:
1. 执行命令,并将结果通过管道写入到/dev/kmsg文件中。例如:
```
exec /system/bin/ls -l | tee /dev/kmsg
```
这条语句会执行ls -l命令,并将输出结果通过管道写入到tee命令中,然后tee命令将输出同时写入到终端和/dev/kmsg文件中。
2. 重启Android设备,让修改后的init.rc文件生效。
当你重启Android设备后,init进程会自动执行ls -l命令,并将输出结果写入到/dev/kmsg文件中。你可以使用dmesg命令来查看/dev/kmsg文件中的日志信息,例如:
```
$ dmesg | grep "ls -l"
```
这条命令会查找包含"ls -l"字符串的日志信息,并将其打印在终端上。
需要注意的是,在使用管道将命令的输出写入到/dev/kmsg文件中时,应该遵循一定的规范,以避免对系统造成不必要的影响。同时,应该谨慎使用exec命令和管道符号,因为它们都可能会导致系统崩溃或者数据丢失。