我有一个调用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停止时,这些进程也会停止。
发布于 2016-09-30 03:03:44
为了让退出代码在链条上传播,父母和祖父母必须存在,如果你杀了祖父母,也就是阿帕奇,是的,你杀了孩子和孙子,除非他们离开家庭成为守护程序。
https://stackoverflow.com/questions/39671985
复制相似问题