我有一个问题,运行sudo iscsiadm -m discovery -t st -pIP-l服务器上所有终端的日志到dmesg。
命令从java应用程序运行,使用:Runtime.getRuntime().exec("/bin/bash", "-c", "sudo iscsiadm -m discovery -t st -p *IP* -l");
我已经试过了:
- 将
> /dev/null 2>&1
附加到iscsiadm discovery...
命令的末尾 - 从返回进程(
process.getInputStream()
和process.getErrorStream()
)捕获输入流 - 将
> /dev/null 2>&1
附加到启动Jar的软件中。
以上尝试都不能阻止在所有虚拟终端上进行日志记录。日志启动[some_num.some_dec] LOG_MESSAGE
,这表明它正在输出到dmesg
?如果这是真的,我该如何预防呢?目前它使系统无法调试,因为它在终端提示符上打印。
问题修复。
原来不是iscsiadm登录到dmesg,这是之后的mount命令,因为blockdev不存在。
我修改了我的java代码,尝试iscsiadm -m discovery...
,然后运行iscsiadm -m session
,以确定在挂载之前适当的设备是否有连接。