做路由调优,经常要跑些耗时操作:比如用 ping 持续探测链路质量、用 tcpdump 抓包分析丢包点、或者让 iperf3 在后台压测带宽。可一旦敲下回车,终端就卡在那儿不动了——你没法继续输其他命令,又不敢关窗口,生怕一关任务就停了。
别让它占着终端不放
Linux/macOS 终端里,加个 & 就能让命令扔进后台跑:
ping -c 100 192.168.1.1 &这样终端立刻还给你,还能继续干活。但注意:它默认会把 stdout/stderr 打印到当前终端,如果窗口关闭或 SSH 断开,任务大概率会被系统终止。真正稳的后台方式
想让任务“躺平”跑得久,推荐组合用 nohup + &:
nohup tcpdump -i eth0 port 53 > dns.log 2>&1 &这句的意思是:抓 DNS 流量,输出存到 dns.log,标准错误也一起写进去,关掉终端也不影响。再配合 jobs 或 ps aux | grep tcpdump 随时查状态。更省心的替代方案
如果要反复调试、切来切去,screen 或 tmux 更适合。比如开个命名会话:
tmux new-session -s route-test在里面跑 iperf3 -c 10.0.0.2 -t 300,按 Ctrl-b d 脱离,终端完全自由;想回去看结果,敲 tmux attach -t route-test 就能接上,就像没离开过一样。家里路由器刷了 OpenWrt?终端资源紧,更得精打细算。用 nohup 跑个 logread -f | grep 'dhcp',后台盯着 DHCP 分配异常,不占交互资源,排查响应更快。