我正在运行一个Perl脚本,在这个脚本中我需要启动一个tomcat服务器。启动服务器后,我需要执行一个不同的linux命令。
在Perl脚本中,启动tomcat后,它不会出现在下一行,因为tomcat服务器正在运行。
system("tomcat.sh run >log.txt");
system("ls");我试着在不同的终端打开服务器。但控制权本身仍然存在。
system("xterm", "-hold", "-e", " tomcat.sh run");我试着用exec代替system,但行为是一样的。
发布于 2014-05-30 15:28:55
这是因为system阻塞直到进程结束。我不知道如何处理这种情况,您可能会分叉它,在运行外部进程之前关闭STDIN等等。您可以尝试IPC::System::Simple,它为您处理许多特定于平台的细节,或者像IPC::Run或IPC::Open3这样的模块。
类似于您的问题:Why does my jzip process hang when I call it with Perl's system?
发布于 2014-05-30 16:13:51
https://stackoverflow.com/questions/23957940
复制相似问题