我有一个程序需要在启动时运行,它在 stdout 和 stderr 上有输出,我想使用 logger 命令重定向到系统日志。我在启动脚本中的内容是:
/home/dirname/application_name -v|logger 2>&1 &
这将标准输出重定向到系统日志就好了,但标准错误正在进入控制台,所以我需要改进命令。
在我的系统中,我有 eth0(可能已连接,也可能未连接)和 ppp0 上的调制解调器(它始终可能启动或关闭)。两个接口都up并且ppp0是默认路由的情况,我想找到一种方法来确定eth0的网关IP实际地址。我试过“netstat -rn”,但在这个配置中,输出是:
内核IP路由表 目标网关 Genmask 标志 MSS 窗口 irtt Iface xx.xx.xxx.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.98.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
那么如何确定eth0的网关地址呢?在上述情况下,实际网关地址是 192.168.98.1。
我在我的 ARM Linux 嵌入式系统上使用pppd
和wvdial
。我有一个通过串行端口连接的 CDMA 调制解调器,并且正在连接到 Verizon 网络。我看到每天pppd
有几次退出,退出代码为 16(请参阅下面日志中的确切消息)。我如何找出导致这些断开连接的原因?特别是该LCP terminated by peer
消息表明了什么?
Feb 18 12:31:04 ts7600-47aad3 pppd[3242]: LCP terminated by peer
Feb 18 12:31:04 ts7600-47aad3 pppd[3242]: Connect time 0.6 minutes.
Feb 18 12:31:04 ts7600-47aad3 pppd[3242]: Sent 1044 bytes, received 0 bytes.
Feb 18 12:31:04 ts7600-47aad3 pppd[3242]: restoring old default route to eth0 [1
92.168.98.1]
Feb 18 12:31:07 ts7600-47aad3 pppd[3242]: Connection terminated.
Feb 18 12:31:07 ts7600-47aad3 pppd[3242]: Modem hangup
Feb 18 12:31:07 ts7600-47aad3 …
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我们有远程 Linux 节点,这些节点通过非常低速的 CDMA 蜂窝调制解调器通过 Internet 进行通信。这些调制解调器上的带宽约为 2kbyte/秒,返回服务器的 RTT 约为 800 毫秒。
基于这些限制,尝试调整 Linux TCP 堆栈以匹配此性能是否有任何好处?例如,我最近发现了可插拔拥塞控制算法,我想知道是否有一个与默认值不同的算法可能会更好。有时我看到这些调制解调器上的下载爬行到 800 字节/秒。我运行了一些 UDP 测试,丢包率约为 25%。
Linux 是 2.6.35.3,在 ARMHF 上使用 Debian Wheezy。
我系统上的硬件看门狗需要以小于 60 秒的间隔0
写入,/dev/watchdog
否则它会触发。但是,文件句柄必须保持打开状态,否则看门狗将被禁用。
例如
echo "0" > /dev/watchdog
Run Code Online (Sandbox Code Playgroud)
不起作用,因为文件句柄在回声完成后关闭。
有没有办法在 bash 中设置一个循环,它会0
定期写入/dev/watchdog
但保持文件句柄打开?
我开始使用 btrfs。我希望能够对某些目录进行快照,但不想创建子卷。这可能吗?
我正在我的嵌入式 Linux 系统上使用 btrfs 进行测试。它使用 uSD 卡作为 rfs。该系统是远程部署的,因此没有人工系统管理员来处理它。我的问题是当校验读取文件失败时会发生什么?有没有办法自动检测到这一点并将消息发送回我的中央服务器?