首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Apache + PHP + Bash中实现进程派生并独立于父进程

在Apache + PHP + Bash中实现进程派生并独立于父进程
EN

Stack Overflow用户
提问于 2016-09-24 10:47:51
回答 1查看 334关注 0票数 1

我有一个调用liquidsoap的bash脚本,如下所示

/bin/sh -c "echo \$\$ > \"${sdir}/pid/${sfile}.pid\" && exec liquidsoap \"${sdir}/liq/${sfile}.liq\" >/dev/null 2>&1 || rm \"${sdir}/pid/{$sfile}.pid\"" &

(对于可读性,它可能看起来像这样填充了变量)

/bin/sh -c "echo \$\$ > \"/radio/pid/station.pid\" && exec liquidsoap \"/radio/liq/station.liq\" >/dev/null 2>&1 || rm \"/radio/pid/station.pid\"" &

在PHP中,使用

return shell_exec("{$this->streamBase}/scripts/{$this->streamName} start config {$stationConfig}");

我的问题是,我不得不重启Apache,当我这样做的时候,它也杀死了液体soap实例。我想让它完全独立于Apache运行,这样我就可以重启Apache,而它们将继续运行。

我不确定我如何才能做到这一点。

编辑:我已尝试更改

/bin/sh -c "echo \$\$ > \"${sdir}/pid/${sfile}.pid\" && exec liquidsoap \"${sdir}/liq/${sfile}.liq\" >/dev/null 2>&1 || rm \"${sdir}/pid/{$sfile}.pid\"" &

(/bin/sh -c "echo \$\$ > \"${sdir}/pid/${sfile}.pid\" && exec liquidsoap \"${sdir}/liq/${sfile}.liq\" >/dev/null 2>&1 || rm \"${sdir}/pid/{$sfile}.pid\"" & ) &

nohup /bin/sh -c "echo \$\$ > \"${sdir}/pid/${sfile}.pid\" && exec liquidsoap \"${sdir}/liq/${sfile}.liq\" >/dev/null 2>&1 || rm \"${sdir}/pid/{$sfile}.pid\"" &

如果我重新启动(或停止/启动) Apache,也不能让liquidsoap保持运行。当Apache停止时,这些进程也会停止。

EN

回答 1

Stack Overflow用户

发布于 2016-09-30 03:03:44

为了让退出代码在链条上传播,父母和祖父母必须存在,如果你杀了祖父母,也就是阿帕奇,是的,你杀了孩子和孙子,除非他们离开家庭成为守护程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39671985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档