bash - 避免 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 命令的所有结果?
解决方案
为了抑制系统日志中命令的每个条目,我找到的解决方案是在> /dev/null 2>&1 &
命令末尾添加,所以在我的示例中sudo fuser /dev/ttyFTDI_GAS -k > /dev/null 2>&1 &
推荐阅读
- api - API 如何工作和获取数据?
- jsviews - 使用数据链接获取字符串的长度
- git - 如何撤消意外的 Git Add,然后是 Git Revert?(IntelliJ Idea 中的两个动作)
- c++ - 如何使用 GDB 和 QEMU 调试自定义内核
- java - 解析年份时出现 java.time.format.DateTimeParseException
- swift - SwiftUI:避免在主数据更改时重新创建详细视图
- file - 如何从 Delphi 将文件保存为“只读”?
- xamarin.forms - Xamarin.Forms SwipeView OnClick 事件处理程序
- amazon-web-services - 使用 AWS 区块链模板创建 Hyperledger 结构。错误以下资源未能创建:[EC2InstanceForDev]
- c - 与 openSSL 的预共享密钥:openSSL 版本 1.1.0h 下的 psk_server_cb 回调