Multithreading 如何从perl脚本中启动批处理文件并从中分离

Multithreading 如何从perl脚本中启动批处理文件并从中分离,multithreading,perl,batch-file,Multithreading,Perl,Batch File,我想从脚本中调用批处理文件,并想在批处理文件仍在后台运行的情况下终止perl脚本,因为这需要很多时间。假设启动批处理文件是退出之前最不想做的事情,请通过exec运行它 exec函数执行一个系统命令,并且从不 回报;如果需要,请使用system而不是exec 返回 如果希望脚本在启动批处理文件后继续运行,则需要将其作为后台进程启动。没有具体的方法可以做到这一点;列出了一些可能的方法 对于Windows,您可以与DETACHED_进程标志一起使用 在Windows中,可以使用特殊呼叫。这将使用特定于

我想从脚本中调用批处理文件,并想在批处理文件仍在后台运行的情况下终止perl脚本,因为这需要很多时间。

假设启动批处理文件是退出之前最不想做的事情,请通过exec运行它

exec函数执行一个系统命令,并且从不 回报;如果需要,请使用system而不是exec 返回

如果希望脚本在启动批处理文件后继续运行,则需要将其作为后台进程启动。没有具体的方法可以做到这一点;列出了一些可能的方法

对于Windows,您可以与DETACHED_进程标志一起使用


在Windows中,可以使用特殊呼叫。这将使用特定于Windows的函数创建单独的进程,以便在其中运行命令

system 1, '.\mybatch.bat';
与exec或常规系统调用启动的进程不同,Windows perl不会等到子进程完成后才终止父进程;虽然您可以捕获进程id$pid=system 1。。。把它传给waitpid


通过该模块可以更好地控制后台进程,但在大多数情况下,这可能有些过分。

是的,批处理文件是我最不想调用的,我不希望脚本在调用批处理文件后结束。但是,即使使用exec,它也会等待批处理文件先完成其作业,然后返回。
system 1, '.\mybatch.bat';