草庐IT

fork-exec

全部标签

Apache下的PHP exec()运行脚本时返回null和255

好的,在为此苦苦思索了几个小时之后,我决定寻求帮助。我有一个运行Apache2.4和PHP7.1的WindowsServer2008。当用户单击浏览器上的按钮时,我的应用程序必须在服务器上运行PHP脚本。这在我的Windows10桌面上运行良好。但是,在服务器上,exec()返回“null”和退出代码255。我阅读了我能找到的关于exec()问题的所有内容并尝试了以下方法:exec("C:\\PHP7\\php.exe-v",$output);我得到了包含PHP版本信息的正确响应。然后我决定检查配置文件:exec("C:\\PHP7\\php.exe--ini",$output);所有

PHP exec导致程序崩溃

我正在使用一个名为DoItAgain的程序,它是一个鼠标记录器。我正在尝试从我的php脚本启动它的快捷方式。当我将它作为独立程序运行时似乎一切正常,并且未设置为必须由管理员运行-仍然当我从我的php页面启动它时,我得到窗口弹出窗口说程序已经崩溃。“DoItAgain.exe遇到问题需要关闭。对于给您带来的不便,我们深表歉意。”这不是程序,而是我代码中的一些东西:$command='C:\\xampp\htdocs\poster\dia\\Monty_20.dia';exec($command);我也尝试了以下但得到了窗口弹出错误:“应用程序无法正确启动”$command=('START

php exec() 挂起

我在IIS7上运行php5.2.0。在这个环境中,我尝试使用phpexec方法创建一个进程,如下所示。exec("background_processes\process_sePos_report.bat)它在一段时间内运行良好,但随后cmd.exe进程在服务器中挂起。在服务器重新启动之前它不会执行任何操作。我也根据下面的错误更改了代码,但问题没有解决。https://bugs.php.net/bug.php?id=44942有人可以帮我解决这个问题吗。谢谢 最佳答案 如果您知道.bat应该完成的时间限制,您可以使用set_time

php - 如何使用 exec() 从 php 推送 git

这是我的push.bat文件echo"Helloworld!"cdabhishek3/callgitadd.callgitcommit-m"sadf"callherokuaccounts:setabhishek84callgitpushherokumaster我可以通过在cmd中运行push.bat文件来推送到我的存储库我想从php推送到我的repo,尝试了以下片段,但没有一个对我有用。exec("psexec-dpush.bat");结果:PHP页面无限加载$WshShell=newCOM("WScript.Shell");$oExec=$WshShell->Run("cmd/Cab

Windows puppet exec 命令文件路径

我想知道是否可以在puppet(windows代理)中让变量保存文件名的值,然后将此变量值添加到execwindowscmd.exe命令中?即我正在尝试将文件从共享驱动器复制到c:\temp,如下所示:$setup_msi="myprogram.msi"exec{'copy_MSI_c:\temp':command=>'C:\\windows\system32\cmd.exe/c"copyi:\\data\\${setup_msi}"c:\\temp'}但是当windowspuppet代理运行时,puppet会解析$setup_msi变量名称本身,而不是该变量包含的值。我希望它能像这样

windows - 如何使用 PowerShell 提供程序的 unless 子句获取 Puppet exec 资源以确定是否已禁用 Chocolatey 源?

exec每次都会运行。当我手动执行unless子句时,它退出0。exec{'disablepublicchocolatey':command=>"C:/ProgramData/chocolatey/choco.exesourcedisable-n=chocolatey",unless=>"C:/ProgramData/chocolatey/choco.exesourcelist|findstr-i'chocolatey[Disabled]'",require=>Exec['chocolatelyinstall'],provider=>powershell,}是否有更好的方法来检查Cho

node.js - 如何杀死 exec 在 Windows 上运行的子进程?

我必须在Nodejs上使用exec方法,因为我需要执行一些标准输出重定向并同时运行多个命令。所以我像这样运行子进程:letshell=null;constchild_process=require('child_process')varcommand='activatepython_environment&bokehserveproject_folder/log/logger.log2>&1';shell=child_process.exec(command);我需要ps-tree像我在下面的代码中那样杀死child。它在Ubuntu上运行良好。但问题是,如果我不杀死子进程,我会在Wi

windows - spawn 和 fork 有什么区别?

在启动新进程的上下文中,我遇到过spawn和fork,但它们有什么区别?在从unix到Windows的处理/解释方式上有什么不同吗? 最佳答案 fork是Unix中的标准系统调用,Windows中不存在。clone密切相关(在Linux上,它们使用相同的内部函数实现)。它用于简单地复制当前正在执行的进程。在Windows上,CreateProcess用于通过启动磁盘上的可执行文件来创建新进程。Windows有一个系列spawn函数,而POSIX指定posix_spawn.这些完成了人们通常想做的事情:执行一些程序。

windows - (fork/waitpid) 等待子进程列表,但每次子进程完成时都会中断等待

我正在使用fork生成许多并行运行多个任务的子进程。在我的例子中,简单地等待循环中的所有子进程是不够的,因为如果我列表中的第一个进程是最后一个完成的,那么我的waitpid调用将阻塞,直到该进程完成。我希望我的waitpid调用在每次进程完成时唤醒。原因是我想立即检查已完成的子进程的退出代码以确定该进程是否成功,以便我可以取消仍在运行的任何子进程。在我的例子中,如果任何子进程返回非零退出代码,让它们继续(可能持续数小时!)是没有意义的,因为这将指示错误,即使是一个错误也会使整个工作变得毫无意义。(编辑:我知道这不是waitpid实际工作的方式,但我正在寻找类似的东西。)现在,我可以通过

c# - C# 中的 fork 概念

既然C#支持线程,有没有办法在C#中实现fork的概念?提前致谢.... 最佳答案 这更多是.NET/CLR的问题,而不是C#的问题。通常,这是底层操作系统的问题。Windows不支持类似fork()的生成新进程的语义。此外,fork()与多线程支持无关。fork()的语义涉及复制原始进程地址空间的内容。我认为这是一种过时的进程创建方法,在Windows世界中几乎没有任何空间,因为它涉及很多安全和操作系统架构问题。从.NET的角度来看,fork()的根本问题是复制和/或共享非托管资源(文件句柄、同步对象、窗口句柄(!)、等)在旧流程