我有一个像这样调用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,当我这样做时,它也杀死了液体肥皂实例。我想让它完全独立于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停止时,这些进程也会停止。
答案 0 :(得分:0)
要在父母和祖父母必须存在的链条上传播退出代码,如果你杀了祖父母,也就是阿帕奇,是的,你杀了孩子和孙子,除非他们离开家庭并成为守护进程。