【发布时间】:2013-03-01 11:19:04
【问题描述】:
我有一个带有以下代码的 shell 脚本;
#!/bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump
我的问题是,当我执行 shell 脚本时,上面的命令会反复执行(它从路由器捕获网络流量),但我希望它在 30 秒后停止。在终端中我只需按Ctrl+c,有没有办法执行这个命令(Ctrl+c) 一定时间 t 之后?
【问题讨论】:
我有一个带有以下代码的 shell 脚本;
#!/bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump
我的问题是,当我执行 shell 脚本时,上面的命令会反复执行(它从路由器捕获网络流量),但我希望它在 30 秒后停止。在终端中我只需按Ctrl+c,有没有办法执行这个命令(Ctrl+c) 一定时间 t 之后?
【问题讨论】:
【讨论】:
将此语句放在#!/bin/bash之后
(睡眠 30 ;杀死 -9 $$)&
看看它是否适用于你的情况。
【讨论】:
-9。特别是考虑到问题特别提到了 ctrl-C,它发送SIGINT。
你也可以杀死最后一个工作:
#! /bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump &
sleep 30 ; kill %%
echo "nfcapd terminated"
exit 0
【讨论】: