在PHP中将参数传递给新进程

在PHP中将参数传递给新进程,php,process,Php,Process,我似乎无法使用system()创建一个持久的分叉过程:(是的,参数是可以的) 但另一方面,这段代码确实有效,但没有参数: system("/code/perl/test/reset &"); 那么,问题出在哪里?我的C程序“run”会随着HTTP请求中PHP脚本的完成而立即终止 我曾尝试使用at守护进程使用单独的父进程创建进程,但没有成功。www数据已从/etc/at.deny中删除 值得注意的是,在第二个示例中,我确实获得了程序输出,但在第一个示例中没有。来自文档: 如果程序以这种方

我似乎无法使用system()创建一个持久的分叉过程:(是的,参数是可以的)

但另一方面,这段代码确实有效,但没有参数:

system("/code/perl/test/reset &");
那么,问题出在哪里?我的C程序“run”会随着HTTP请求中PHP脚本的完成而立即终止

我曾尝试使用at守护进程使用单独的父进程创建进程,但没有成功。www数据已从/etc/at.deny中删除

值得注意的是,在第二个示例中,我确实获得了程序输出,但在第一个示例中没有。

来自文档:

如果程序以这种方式启动,为了使其继续 在后台运行时,程序的输出必须是 重定向到文件或其他输出流。如果不这样做,将导致 使PHP挂起,直到程序执行结束

因此,如果它立即结束,则很可能不会显示正在运行的
run
。尝试将输出发送到其他文件。Try:
exec(“/bin/echo$a$n$m$s$c>/tmp/echo&”)以启动诊断


之后,我会检查安全模式并尝试
escapeshellcmd
。最后,请尝试backtick
`
操作符。

这是PHP脚本完成后,然后杀死所有附加到它的子进程的结果


如果“at”工作区不起作用(您使用atd将其安排为“now”),就像它对我不起作用一样,您可能需要编写一个工作区。我的解决方法是将命令放在/tmp/中的一个文件中,然后让我的守护程序代码执行该文件中的命令,然后将其截断。

“run”肯定正在运行。问题是,PHP或其他东西正在结束它,应该允许任务继续。您是在不允许后台任务的主机上还是在不受控制的环境中?不。这是我自己的VPS,具有完全根访问权限。作为一种更回避的解决方法,我编写了一个需要运行单独守护程序的解决方案。。希望我不会忘记运行它。
system("/code/perl/test/reset &");