首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl脚本与Tomcat挂起

Perl脚本与Tomcat挂起
EN

Stack Overflow用户
提问于 2014-05-30 15:17:46
回答 2查看 245关注 0票数 0

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

在Perl脚本中,启动tomcat后,它不会出现在下一行,因为tomcat服务器正在运行。

代码语言:javascript
复制
system("tomcat.sh run >log.txt");
system("ls");

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

代码语言:javascript
复制
system("xterm", "-hold", "-e", " tomcat.sh run");

我试着用exec代替system,但行为是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-30 15:28:55

这是因为system阻塞直到进程结束。我不知道如何处理这种情况,您可能会分叉它,在运行外部进程之前关闭STDIN等等。您可以尝试IPC::System::Simple,它为您处理许多特定于平台的细节,或者像IPC::RunIPC::Open3这样的模块。

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

票数 2
EN

Stack Overflow用户

发布于 2014-05-30 16:13:51

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

代码语言:javascript
复制
system("tomcat.sh run >log.txt &");

应该能起作用。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23957940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档