我正在运行一个Perl脚本,我需要在其中启动一个tomcat服务器。启动服务器后,我需要执行不同的linux命令。
在启动tomcat后的Perl脚本中,当tomcat服务器正在运行时,它不会出现在下一行..
system("tomcat.sh run >log.txt");
system("ls");
我试图在不同的终端打开服务器。但控制本身仍然存在。
system("xterm", "-hold", "-e", " tomcat.sh run");
我尝试exec
代替system
,但行为相同。
答案 0 :(得分:3)
答案 1 :(得分:2)
这是因为system会阻止该进程完成。我不确定如何处理这种情况,你可能会分叉它,在运行外部进程之前关闭STDIN等。你可以试试IPC::System::Simple
而不是系统,它可以处理很多特定于平台的有关您的详细信息,或IPC::Run
或IPC::Open3
等模块。
与您的问题类似:Why does my jzip process hang when I call it with Perl's system?