我正在尝试输出系统 netstat -an -p TCP $interval > $log
休眠 $seconds,然后退出/终止 netstat 命令,但我无法获取它才能正常工作。
如果我使用 start netstat...
,我的 sleep 和 kill 命令会起作用,但不会写入日志。
如果我只使用 netstat...
,那么它会写入日志,但不会继续执行 sleep 和 kill 命令。
关于如何解决这个问题的任何想法?
$netstat_cmd = "netstat -an -p TCP $interval >$netstatlog;
$stop_netstat_cmd = "c:\utilities\pskill NETSTAT.exe";
system($netstat_cmd);
sleep $seconds;
system "$stop_netstat_cmd";
谢谢!
最佳答案
你为什么不使用IPC::Run
?它有一个 kill_kill()
方法,可以跨 Unix 和 Win32 移植(如果您在 Windows 上运行,后者很重要,因为您的“开始”似乎可能表明)。
就您自己的方法而言,start xxx
重定向不起作用,因此最简单的解决方法是:
创建批处理文件以运行 netstat 并重定向到文件
使用
启动批处理文件start
关于windows - Perl system(command) 然后 kill 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7815356/