首页 > 解决方案 > 避免 bash 命令输出被记录

问题描述

我正在寻找一种方法来避免从 Node-Red 进程(在我的 Raspberry Pi 3B+ 设备上运行)中执行的某些 bash 命令将进入 Raspeberry OS(Stretch)的 /var/log/system 日志文件。

特别是我有一个节点(在 node-red 内),每 30 秒执行一个 bash 命令,以终止在串行设备上运行的任何最终进程(通过 FTDI USB 转换器连接到 Raspberry)。

我在 node-red 中执行的命令如下:

sudo fuser /dev/ttyFTDI_GAS -k

大多数情况下,FTDI 串行连接设备上没有正在运行的进程,因此该命令会导致错误。在这种情况下,这个错误会填满我的系统日志文件,使它真的“拥挤”并且难以阅读。

下面是我的系统文件的样子。

5 月 27 日 07:30:59 raspberrypi Node-RED [349]:5 月 27 日 07:30:59 - [info] [exec:96ba9b5a.d097b8] 错误:错误:命令失败:sudo fuser /dev/ttyFTDI_GAS -k

5 月 27 日 07:30:59 raspberrypi Node-RED [349]:5 月 27 日 07:31:29 - [info] [exec:96ba9b5a.d097b8] 错误:错误:命令失败:sudo fuser /dev/ttyFTDI_GAS -k

5 月 27 日 07:30:59 raspberrypi Node-RED [349]:5 月 27 日 07:31:59 - [info] [exec:96ba9b5a.d097b8] 错误:错误:命令失败:sudo fuser /dev/ttyFTDI_GAS -k

5 月 27 日 07:30:59 raspberrypi Node-RED [349]:5 月 27 日 07:32:29 - [info] [exec:96ba9b5a.d097b8] 错误:错误:命令失败:sudo fuser /dev/ttyFTDI_GAS -k

相反,当有一个或模式进程使用连接的设备时,此命令(这就是使用“-k”选项的原因)将杀死它们并“释放”连接的设备,以便准备好接受新的串行通信与覆盆子。

有没有办法避免在系统日志中显示 sudo fuser /dev/ttyFTDI_GAS -k 命令的所有结果?

标签: bashloggingraspberry-pi3fuser

解决方案


为了抑制系统日志中命令的每个条目,我找到的解决方案是在> /dev/null 2>&1 &命令末尾添加,所以在我的示例中sudo fuser /dev/ttyFTDI_GAS -k > /dev/null 2>&1 &


推荐阅读