windows - Perl system(command) 然后 kill 命令

标签 windows perl netstat

我正在尝试输出系统 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/

相关文章:

linux - 套接字将端口绑定(bind)到我的本地主机和盒子IP中的相同端口

docker - Docker 公开的端口无法访问

windows - MFC:对哪个线程负责导致崩溃进行故障排除

perl - 使用 Plack::Handler::Apache2 与 Apache2 的 PSGI 应用程序导致 'not found'

json - 如何创建编码后符合特定 JSON 表示形式的数据结构?

perl - 为什么我的 perl Catalyst redirect_and_detach 替换插件方法失败?

linux - 无法在 Ubuntu 上找到 tomcat 进程的端口号

c++ - 构建在 windows 和 linux 上工作的基于跨平台异步事件的服务器使用哪个库?

python - 在 Windows 上的 os.system 中转义双引号

php - 如何在 Windows 中无需用户名和密码即可将 Laravel 应用程序与 MySQL 连接