首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Windows上的Perl CGI脚本分叉后台进程?

要从Windows上的Perl CGI脚本分叉后台进程,可以使用以下方法:

  1. 使用Win32::Process模块:
代码语言:perl
复制
use Win32::Process;

my $pid = Win32::Process::Create(
    $ProcessName,
    $CommandLine,
    $ProcessStartup,
    $CreationFlags,
    $Environment,
    $CurrentDirectory,
    $StartupInfo,
    $ProcessInfo
);
  1. 使用fork()函数:
代码语言:perl
复制
use POSIX;

my $pid = fork();

if ($pid == 0) {
    # 子进程代码
} elsif ($pid > 0) {
    # 父进程代码
} else {
    # 错误处理
}
  1. 使用Win32::Daemon模块:
代码语言:perl
复制
use Win32::Daemon;

my $pid = Win32::Daemon::StartService();
  1. 使用Win32::Job模块:
代码语言:perl
复制
use Win32::Job;

my $job = Win32::Job->new();

$job->spawn(
    $CommandLine,
    $ProcessStartup,
    $CreationFlags,
    $Environment,
    $CurrentDirectory,
    $StartupInfo,
    $ProcessInfo
);
  1. 使用Win32::Process::Background模块:
代码语言:perl
复制
use Win32::Process::Background;

my $pid = Win32::Process::Background::Start($CommandLine);
  1. 使用Win32::TaskScheduler模块:
代码语言:perl
复制
use Win32::TaskScheduler;

my $task = Win32::TaskScheduler->new();

$task->set_command_line($CommandLine);
$task->set_working_directory($CurrentDirectory);
$task->set_run_level($RunLevel);
$task->set_flags($Flags);
$task->set_account_information($AccountName, $Password);
$task->set_idle_wait($IdleWait);
$task->set_idle_duration($IdleDuration);
$task->set_idle_stop_on_idle_end($StopOnIdleEnd);
$task->set_idle_restart_on_idle($RestartOnIdle);
$task->set_network_settings($NetworkName, $NetworkId);
$task->set_priority($Priority);
$task->set_max_run_time($MaxRunTime);
$task->set_delete_on_close($DeleteOnClose);
$task->set_allow_start_on_demand($AllowDemandStart);
$task->set_start_when_available($StartWhenAvailable);
$task->set_stop_if_going_on_batteries($StopIfGoingOnBatteries);
$task->set_run_only_if_network_available($RunOnlyIfNetworkAvailable);
$task->set_enabled($Enabled);
$task->set_hidden($Hidden);
$task->set_run_only_if_idle($RunOnlyIfIdle);
$task->set_wake_to_run($WakeToRun);
$task->set_execution_time_limit($ExecutionTimeLimit);
$task->set_run_only_if_docked($RunOnlyIfDocked);
$task->set_storage($Storage);
$task->set_run_level($RunLevel);
$task->set_run_only_if_logged_on($RunOnlyIfLoggedOn);

$task->save();

以上是一些可以从Windows上的Perl CGI脚本分叉后台进程的方法,可以根据具体需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何优雅Windows跑Shell脚本

前言 我喜欢Shell脚本,格式方便阅读,方便调试。 在WindowsBat脚本,相对没那么友好,至少对我来说是这样,还有一个致命原因就是不方便调试……这点比较致命。...那有没有一种方法,可以在Windows跑Shell脚本呢?答案是肯定。...下面就谈谈我经历: 起因 我们有一台边界 FTP,经常会异常中断,重启 FTP 即可; 为确保数据能有效传输,FTP 异常后能及时恢复,所以这个计划就产生了; ---- 环境 Windows server...-Shell,类型选择 Bash; 在新开会话中编写 shell 脚本 ---> ftp_check.sh 代码如下仅供参考; #!...; cron 任务编写有点不友好,需要克服下; 由于日志文件是在shell下完成,所以当你直接双击打开会没有换行,所以需要进行文件转换(这是由于Linux和Windows换行符不一样导致) 万能 Mobaxterm

1.8K60

如何在 Python 中终止 Windows 运行进程

当深入研究Windows操作系统Python开发领域时,无疑会出现需要终止正在运行进程情况。这种终止背后动机可能涵盖多种情况,包括无响应、过度资源消耗或仅仅是停止脚本执行必要性。...在这篇综合性文章中,我们将探讨各种方法来完成使用 Python 终止 Windows 运行进程任务。...值得注意是,Windows利用“taskkill”命令来终止活动进程。...方法3:释放“子流程”模块力量 Python “子进程”模块赋予我们生成新进程能力,与它们输入/输出/错误管道建立连接,并检索它们返回代码。...shell=True' 参数在 Windows 命令外壳中执行命令时变得不可或缺。 结论 在这次深入探索中,我们阐明了使用 Python 终止 Windows 运行进程三种不同方法。

39830

翻译:Perl代码审计:Perl脚本中存在问题与存在安全风险

本文将展示perl语言不正确使用方式,错误使用方式又是如何对运行程序用户,及系统构成威胁。本文也会展示如何利用这些漏洞,以及如何修复或避免它们。...任何时候你程序可能会从一个不受信任用户那里获取输入,即使是间接,你都应该小心。例如,如果我们使用Perl编写CGI脚本,那么恶意用户可能会向您发送虚假输入。.../$username"); print while ; 当我们将管道打开到“-”时,无论是用于读取(“-|”)还是用于写入(“|-”),Perl都会分叉当前进程,并将子进程PID...发生情况是,子进程将txt2html生成输出打印到STDOUT,然后安静地小时,同时父进程STDIN读取结果。...@INC问题与PATH问题几乎相同有人可能会将您Perl指向一个与您所期望模块具有相同名称和执行相同操作模块,但它也会在后台执行颠覆性操作。

2.6K51

PHP-CGI windows闪退!解决 & 网站部署 Bat

我们知道,web服务器所处理内容都是静态,要想处理动态内容,需要依赖于web应用程序,如php、jsp、python、perl等。但是web server如何将动态请求传递给这些应用程序?...web server会将这些程序参数和其它一些环境变量根据cgi协议通过TCP或套接字等方式传递给已启动cgi程序(可能是cgi进程,或者是已加载模块cgi模块)。...常用于编写CGI语言有perl、php、python等,java也一样能写,但javaservlet完全能实现CGI功能,且更优化、更利于开发。 正文 首先,我们要知道什么是php-cgi?...php-cgi 只是解释PHP脚本程序而已,这玩意,在windows环境下,自动闪退,很恶心是吧! 这话怎么理解?...exit image.png 窗口关闭,无所谓,这事Hide控制台,后台不显示窗口哦

1.3K10

万法归宗:CGI

第一个版本CGIPerl语言编写脚本,因此通常称之为“CGI脚本”。直至今日,把CGI一词丢入谷歌搜索框,搜到一大把都是Perl相关内容。...CGI程序通常部署到Web服务器(如Apache),Web服务器然后调用CGI程序,关于CGI程序到底如何Web服务器中获得输入,请继续阅读下一节 Interface。...简单来说,其本质就是一个常驻内存进程池技术,由调度器负责将传递过来CGI请求发送给处理CGIhandler进程来处理。在一个请求处理完成之后,该处理进程不销毁,继续等待下一个请求到来。...当然FCGI其实也并不是什么惊世骇俗创意,很容易联想到解决思路。资源池是后台性能优化中常见套路。Java发明Servlet技术也是一种常驻内存网关通信技术,只不过它采用是多线程而非进程。...虽然理论CGI程序也可以实现app/hello.cgi/abc/def 这种形式路由。但是基本没人这样做。

1.2K10

Web开发——服务器端应用技术简单比较

它允许使用不同语言来编写适合CGI程序,该程序被放在Web服务器运行。...当客户端发出请求给服务器时,服务器根据用户请求建立一个新进程来执行指定CGI程序并将执行结果以网页形式返回给客户端浏览器显示出来。...但必须得在服务器端安装了适当解释器后,才可以通过调用此解释器来执行脚本程序,然后将执行结果与静态内容部分结合并传送到客户端浏览器。...对于一些复杂操作,ASP可以调用存在于后台COM组件来完成,所以说COM组建无限地扩充了ASP能力,正因为如此一来本地COM组件,使得它主要用于Windows NT平台中。...3、PHP     PHP(Hypertext Preprocessor 超文本预处理器)语法类似于C,并且混合了Perl、C++和Java一些特性,它是一种开源Web服务器脚本语言,与ASP

2K10

AWStats简介

cgi-bin /path/to/apache/cgi-bin/awstats 把图标等文件目录复制到WEBHTML文件发布目录下,例如:/home/apache/htdocs/ 下发布 更多批量更新脚本等在...config=chedong[/url] 基于Perl:并且很好解决了跨平台问题,系统本身可以运行在GNU/LinuxWindows(安装了ActivePerl后);分析日志直接支持Apache...; 一种是运行后台脚本将输出导出成静态文件; 以下是2个针对单个站点日志统计例子: 一个是在GNU/Linux通过CGI方式输出, 一个是在Windows 2000基于静态页面的导出...tools 目录下,可以一并放到cgi-bin/awstats/ 目录下, Windows 2000:按照后台脚本模式运行,直接解包,然后移动到D:\AWStats目录下 把图标.../awstats.pl -update -config=chedong) Windows 2000:设置每天8点10分运行 D:\Perl\bin\perl.exe d:\AWStats

40630

Nginx vs Apache

你又该如何选择使用呢,用其中一个还是两者都用?我们将会在这里探索一下这些问题答案。 Apache服务器1995年就开始使用了。...工作进程为HTTP请求加载ht_core Nginx进程。我们还可以看到,Nginx和Windows以及Linux内核功能紧密集成在了一起,以便提升性能。...这就意味着Nginx在静态内容服务要相对快些,不过,Apache可以使用模块来运行后台应用服务器,而且还可以运行脚本语言。...Apache 具有内建支持PHP,Python,Perl等语言能力。例如,mod_perl和mod_php模块可以用来在Apache进程中处理PHP和Perl代码。...这些进程在Apache进程中运行更快一些。 所以,如果你网站主要是用Python或Ruby开发,你最好使用Apache,因为Apache不需要使用CGI

50510

PHP相关概念及配置

服务器端动态: CGI:通用网关接口,protocol web进程根据对应程序不同调用不同外界程序去运行再将执行结果返回给web进程。 web应用程序。...Rasmus Lerdorf于1994年开始开发PHP,它是初是一组被Rasmus Lerdorf称作“Personal Home Page Tool” Perl脚本, 这些脚本可以用于显示作者简历并记录用户对其网站访问...后来,Rasmus Lerdorf使用C语言将这些Perl脚本重写为CGI程序,还为其增加了运行Web forms能力以及与数据库交互特性,并将其重命名为“Personal Home Page/Forms...9、win32 —— 这个目录主要包括Windows平台相关一些实现,比如sokcet实现在Windows下和*Nix平台就不太一样,同时也包括了Windows下编译PHP相关脚本。 ?...> 只将php代码交由php处理。 CGI:管理PHP生命进程周期。

854130

全面了解CGI、FastCGI、PHP-FPM

相信都会想起Apache吧,初学php时,在windows安装完php和Apache之后,为了让Apache能够解析php代码,我们会在Apache配置文件(httpd.conf)中添加如下配置:...被设计为一个独立运行后台进程,它会建立一个处理请求进程或线程池) 所以,以上apache调用php执行过程如下: apache -> httpd -> php5_module -> sapi...CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php、perl、tcl等。 WEB服务器会传哪些数据给PHP解析器呢?...(CGI程序和FastCGI程序,可以理解成遵循CGI协议和FastCGI协议编写程序) FastCGI工作原理: FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器启动一个或者多个脚本解析守护进程...(4)FastCGI子进程完成处理后,将标准输出和错误信息同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。

2.7K12

全面了解CGI、FastCGI、PHP-FPM

相信都会想起Apache吧,初学php时,在windows安装完php和Apache之后,为了让Apache能够解析php代码,我们会在Apache配置文件(httpd.conf)中添加如下配置:...那么,php5_module是如何将数据传给php解析器来解析php代码呢?...被设计为一个独立运行后台进程,它会建立一个处理请求进程或线程池) 所以,以上apache调用php执行过程如下: apache -> httpd -> php5_module -> sapi ...(CGI程序和FastCGI程序,可以理解成遵循CGI协议和FastCGI协议编写程序) FastCGI工作原理: FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器启动一个或者多个脚本解析守护进程...(4)FastCGI子进程完成处理后,将标准输出和错误信息同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。

82600

PHP运行模式

CGI 跨平台性能极佳,几乎可以在任何操作系统实现。 CGI已经是比较老模式了,这几年都很少用了。...3)apache错误提示: Exec format erro 脚本解释器设置错误。脚本第一行应该以'#!解释器路径'形式, 填写脚本解释器路径,如果是PERL程序,常见路径为: #!...(4)、FastCGI子进程完成处理后将标准输出和错误信息同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。...Fastcgi优点: 1)稳定性看, fastcgi是以独立进程池运行来cgi,单独一个进程死掉,系统可以很轻易丢弃,然后重新分 配新进程来运行逻辑. 2)安全性看,Fastcgi支持分布式运算...Apache是如何加载模块呢?我们以前面提到mod_php5模块为例。

1.8K30

Python:网络编程

模块 SocketServer 还包含很多其他类,它们为 HTTP 服务器提供了基本支持(如运行 CGI 脚本),以及 XML-RPC 支持。...对进程(运行程序)进行分叉时,基本是复制它,而这样得到两个进程都将从当前位置开始继续往下执行,且每个进程都有自己内存副本(变量等)。原来进程为父进程,复制进程为子进程。...如果你是科幻小说迷,可将它们视为并行宇宙:分叉操作在时间轴创建一个分支,最终得到两个独立存在宇宙(进程)。...由于分叉出来进程并行运行,因此客户端无需等待。 鉴于分叉占用资源较多(每个分叉出来进程都必须有自己内存),还有一种解决方案:线程化。线程是轻量级进程(子进程),都位于同一个进程中并共享内存。...在现代操作系统(不支持分叉 Windows 除外)中,分叉速度其实非常快,较新硬件能够更好地应付资源消耗。如果你不想处理麻烦同步问题,分叉可能是不错选择。

1.2K20

PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析

在远古时候,web应用运行方式很简单,web容器接收到http数据包后,拿到用户请求文件(cgi脚本),并fork出一个子进程(解释器)去执行这个文件,然后拿到执行结果,直接返回给用户,同时这个解释器子进程也就结束了...基于bash、perl等语言web应用多半都是以这种方式来执行,这种执行方式一般就被称为cgi,在安装Apache时候默认有一个cgi-bin目录,最早就是放置这些cgi脚本。...但cgi模式有个致命缺点,众所周知,进程创建和调度都是有一定消耗,而且进程数量也不是无限。...于是后来就有了fastcgi,fastcgi进程可以将自己一直运行在后台,并通过fastcgi协议接受数据包,执行后返回结果,但自身并不退出。...也就说,我们可以像perl一样,让web容器直接fork一个php-cgi进程执行某脚本;也可以在后台运行php-cgi -b 127.0.0.1:9000(php-cgi作为fastcgi管理器),

2.6K30

困扰已久问题 cgi、fastcgi、PHP-fpm 汇总

模块:这是apache独有的对php支持,nginx是没有这种方式,通过这种方式apache就可以直接处理php脚本了,至于是多进程、多线程要取决于apache工作方式。...php-cgi.exe和PHP-fpm是什么? php-cgi.exe 是解释器,也可以当作一个简易 cgi/FastCgi 管理器。比如在windows系统中nginx是如何与php结合呢?...linux通过php-fpm,但是windows没有php-fpm,这个时候打开任务管理器会发现 CGI/FastCGI(32位) 这个进程,nginx就是反向代理给它。...总结 cgi、fastcgi是协议,是标准,是web服务器到后台脚本语言之间协议。...Apache三种工作模式介绍与配置 php手册:在旧Windows系统安装 php-cgi和php-fpm有什么关系?

1.2K20

部署lamp-php安装指南

语法吸收了C语言、Java和Perl特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特语法混合了C、Java、Perl以及PHP自创语法。...它可以比CGI或者Perl更快速地执行动态网页。...,会开启一个进程进行处理,处理完毕会关闭该进程,因此下次连接,又要再次开启一个进程进行处理,因此有多少个连接就有多少个cgi进程,这也就是为什么传统cgi会显得缓慢原因,因此过多进程会消耗资源和内存...4、FastCGI子进程完成处理后将标准输出和错误信息同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。...比如7200 那么在变动php文件后如何才能快速降低opcache缓存带来这种问题呢?

98910
领券