我是用perl的线程启动的system调用的bat文件,终止perl的线程,无法终止bat文件的进程吗?<br><br>
<div><span class="gmail_quote">在08-6-11,<b class="gmail_sendername">truncatei</b> <<a href="mailto:truncatei@gmail.com">truncatei@gmail.com</a>> 写道:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">由system调用bat文件启动的进程好像和perl的线程不一样的,不能用这种方法吧<br><br>2008/6/11 Steven Zhu <<a href="mailto:stevenzyk@gmail.com">stevenzyk@gmail.com</a>>:<br>
> 这个是server端的application,程序会有client端发送指令过来,执行bat文件,在执行中再次发送中断指令,停止bat文件的运行,但是目前使用detach中断不了,还是会执行,请帮忙看看<br>> # Server Program<br>> use threads;<br>> use IO::Socket::INET;<br>><br>> print ">> Server Program <<\n";<br>
><br>> # Create a new socket<br>> $MySocket=new IO::Socket::INET->new(LocalPort=>1234,Proto=>'udp');<br>> my $new_sock = $MySocket->accept();<br>><br>> # Keep receiving messages from client<br>
> while(1)<br>> {<br>> $MySocket->recv($text,128);<br>> if ( $text =~ /stop/ )<br>> {<br>> open(STOP , "d:\\thread_d");<br>> while(<STOP>)<br>> {<br>> push @child_thread , $_;<br>
> }<br>> close(STOP);<br>> $asdf = @child_thread[0];<br>> print "thread: $asdf\n";<br>> stop();<br>> }<br>> else<br>> {<br>> $thread = threads->new(\&start_thread,$MySocket);<br>
> open(THREAD , ">d:\\thread_d");<br>> print THREAD $thread;<br>> close(THREAD);<br>> }<br>> }<br>><br>> sub stop{<br>> print "thread: $thread\n";<br>> $qwer = $thread->detach;<br>
> print "$qwer\n";<br>> }<br>><br>> sub start_thread<br>> {<br>> chdir "F:\\C26_1";<br>> system("F:\\C26_1\\C26_remake.bat");<br>> }<br>><br>><br>><br>_______________________________________________<br>
China-pm mailing list<br><a href="mailto:China-pm@pm.org">China-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/china-pm">http://mail.pm.org/mailman/listinfo/china-pm</a></blockquote></div><br><br clear="all">
<br>-- <br>BR<br>Steven.zhu