如何使用system()从CGI文件中调用异步Perl脚本

德里克·N

让我以我的问题开头,说我已经阅读了许多关于SO以及网络搜索的不同文章,但找不到适合我实际情况的任何内容。

实际上,问题很简单。我有一个CGI脚本(Perl)在Web服务器上提供动态页面,并且当用户加载某个页面时,我想让CGI脚本调用.pl文件system()来执行一些“整理”。它在Windows NT环境中运行。

用于测试目的的CGI脚本是test1.pltest1.cgi,例如“ https://www.awebsite.com/test1.pl ”。

test1.pl(生成网页的CGI脚本)

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "Hello user, this is a test page.";

system("start C:/path/to/script/test2.pl");

print "Page is fully loaded and housekeeping is being done, even though this page is now fully loaded";

test2.pl(正在执行“内务处理”的独立.pl文件,与test1.pl正在执行的操作异步)

#!/usr/bin/perl

#just a counter that takes a while to complete, to verify test2.pl is running
for ($x=0; $x <= 100000; $x++){print "$x ";}

好的,请记住这是用于测试操作,而不是功能。从命令行运行test1.pl时,它可以正常工作。

从浏览器运行test1.pl时,这会在服务器上不断提示“ openWith.exe”(在任务管理器中查看)。我的.pl文件是可执行文件,因此这与文件类型未知或不知道如何使用Perl命令行解释器一起运行无关。我无法弄清楚这里发生了什么,以及当通过Web界面调用时为什么它无法运行来自test1.pl的系统命令。

用户输入没有传递任何参数。test1.pl只需运行test2.pl来做一些内务处理,但是我不能让test1.pl在继续之前先等待test2.pl完成。因此,test2.pl应该由test1.pl启动并继续运行-同时,test1.pl已经完成其工作。并不需要或想要捕捉test2.pl任何输出。

我希望我已经清楚地解释了这一点。即使实际代码会复杂得多,我也使用了简单的示例。在这一点上,它甚至没有运行这些简单的示例脚本,因此实际的功能代码此时并不重要。

谢谢任何能帮助我的人。顺便说一句,我尝试为test1.pl设置“完全控制”权限,但这无济于事。同样,此“ openwith.exe”确实让我在这里循环。

德里克·N

终于弄清楚了(像往常一样,我自己)。事实证明,施文(Schwern),您处在正确的轨道上。即使.pl文件关联是通过控制面板建立的,可以使用Perl命令行解释器打开,但Windows文件类型关联还是存在问题(我什至不完全了解)。我终于在这里找到了TRUE问题的答案:Perl未在Windows 10中运行

特别是这里的这一部分:

您必须在.pl文件扩展名和Perl运行时之间创建文件关联。在命令提示符下,键入以下内容。
assoc .pl=PerlScript
ftype PerlScript=c:\perl\bin\perl.exe %1 %*

我希望这可以帮助可能遇到相同问题的其他人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用CGI Perl脚本在xampp apache服务器中上载和打开文件?

来自分类Dev

如何使用CGI Perl脚本在xampp apache服务器中上载和打开文件?

来自分类Dev

使用stdin代替python调用perl脚本中的文件

来自分类Dev

使用 Perl CGI 脚本上传文件不起作用

来自分类Dev

从HTML文件(在localhost上)中调用cgi脚本

来自分类Dev

从HTML文件中(在localhost上)调用cgi脚本

来自分类Dev

如何使用 Perl CGI 脚本启动/停止服务

来自分类Dev

Perl CGI脚本的Bash配置文件

来自分类Dev

如何使用python请求下载文件(perl cgi后端)

来自分类Dev

使用Pandas从Python CGI脚本中读取上传的XLSX文件

来自分类Dev

如何使用CGI Perl在HTML表格中呈现xml内容

来自分类Dev

通过Perl CGI脚本上传文件而不存储文件

来自分类Dev

多个CGI Perl脚本

来自分类Dev

使用Perl CGI打印大文件

来自分类Dev

如何使用系统(Windows)从Perl调用子目录中的脚本

来自分类Dev

一个用于上传文件的perl / cgi脚本

来自分类Dev

如何使用RedHat Enterprise Linux的软件集合在python 3 cgi脚本上调用它们?

来自分类Dev

使用脚本从perl调用matlab

来自分类Dev

如何在Perl AGI脚本中调用星号函数?

来自分类Dev

如何在Perl AGI脚本中调用星号函数?

来自分类Dev

如何在Perl CGI中验证表格?

来自分类Dev

如何使用Perl CGI收集ARGV?

来自分类Dev

如何从 perl 脚本调用 shell 脚本

来自分类Dev

如何从终端在Mac上运行此简单的Perl CGI脚本?

来自分类Dev

我应该使用什么代码在CGI perl中打开链接或文件

来自分类Dev

Ruby:如何在脚本中调用文件后关闭文件

来自分类Dev

Perl:如何检查CGI :: header是否已经被调用?

来自分类Dev

分析超时的Perl CGI脚本

来自分类Dev

分析超时的Perl CGI脚本

Related 相关文章

  1. 1

    如何使用CGI Perl脚本在xampp apache服务器中上载和打开文件?

  2. 2

    如何使用CGI Perl脚本在xampp apache服务器中上载和打开文件?

  3. 3

    使用stdin代替python调用perl脚本中的文件

  4. 4

    使用 Perl CGI 脚本上传文件不起作用

  5. 5

    从HTML文件(在localhost上)中调用cgi脚本

  6. 6

    从HTML文件中(在localhost上)调用cgi脚本

  7. 7

    如何使用 Perl CGI 脚本启动/停止服务

  8. 8

    Perl CGI脚本的Bash配置文件

  9. 9

    如何使用python请求下载文件(perl cgi后端)

  10. 10

    使用Pandas从Python CGI脚本中读取上传的XLSX文件

  11. 11

    如何使用CGI Perl在HTML表格中呈现xml内容

  12. 12

    通过Perl CGI脚本上传文件而不存储文件

  13. 13

    多个CGI Perl脚本

  14. 14

    使用Perl CGI打印大文件

  15. 15

    如何使用系统(Windows)从Perl调用子目录中的脚本

  16. 16

    一个用于上传文件的perl / cgi脚本

  17. 17

    如何使用RedHat Enterprise Linux的软件集合在python 3 cgi脚本上调用它们?

  18. 18

    使用脚本从perl调用matlab

  19. 19

    如何在Perl AGI脚本中调用星号函数?

  20. 20

    如何在Perl AGI脚本中调用星号函数?

  21. 21

    如何在Perl CGI中验证表格?

  22. 22

    如何使用Perl CGI收集ARGV?

  23. 23

    如何从 perl 脚本调用 shell 脚本

  24. 24

    如何从终端在Mac上运行此简单的Perl CGI脚本?

  25. 25

    我应该使用什么代码在CGI perl中打开链接或文件

  26. 26

    Ruby:如何在脚本中调用文件后关闭文件

  27. 27

    Perl:如何检查CGI :: header是否已经被调用?

  28. 28

    分析超时的Perl CGI脚本

  29. 29

    分析超时的Perl CGI脚本

热门标签

归档