在Perl中完成前一个系统命令时执行下一个系统命令

时间:2014-03-27 09:25:37

标签: perl shell

我正在使用perl CGI开发Web UI。我必须从UI运行脚本,当它完成执行(大约需要一个小时),然后重命名.png文件,然后我必须杀死一些进程。这就是我正在做的事情。

system "sudo -E ./top_apps.sh stats.log > dev/null &";
$pid=`sudo -E pgrep top_apps.sh -d "," | xargs echo`;
system "sudo -E ./run_test.sh > /dev/null ; mv /var/www/html/img/stats.log_cpu.png /var/www/html/img/stats.log_cpu_$stat_no.png ; pkill $pid &";

现在我正在做以下的

system "sudo -E ./top_apps.sh stats.log > dev/null &";
$pid=`sudo -E pgrep top_apps.sh -d "," | xargs echo`;
system "sudo -E ./run_test.sh > /dev/null &;

它的工作正常但是当我添加命令来重命名和终止PID时,Web UI会出现“没有收到数据”的错误。当我直接从shell运行这个命令时,它的工作正常,所有进程都是一个接一个地进行的。请告诉我这有什么问题,或者是否有任何其他方法在perl中一个接一个地执行任务。

0 个答案:

没有答案