Perl脚本挂在Tomcat服务器上

时间:2014-05-30 15:17:47

标签: linux perl tomcat

我正在运行一个Perl脚本,我需要在其中启动一个tomcat服务器。启动服务器后,我需要执行不同的linux命令。

在启动tomcat后的Perl脚本中,当tomcat服务器正在运行时,它不会出现在下一行..

system("tomcat.sh run >log.txt");
system("ls");

我试图在不同的终端打开服务器。但控制本身仍然存在。

system("xterm", "-hold", "-e", " tomcat.sh run");

我尝试exec代替system,但行为相同。

2 个答案:

答案 0 :(得分:3)

如果您使用系统的单字符串版本,则可以附加&以在后台运行命令:

system("tomcat.sh run >log.txt &");

应该做的伎俩。

我也发现了一个类似的问题here

答案 1 :(得分:2)

这是因为system会阻止该进程完成。我不确定如何处理这种情况,你可能会分叉它,在运行外部进程之前关闭STDIN等。你可以试试IPC::System::Simple而不是系统,它可以处理很多特定于平台的有关您的详细信息,或IPC::RunIPC::Open3等模块。

与您的问题类似:Why does my jzip process hang when I call it with Perl's system?