【发布时间】:2016-03-24 20:09:47
【问题描述】:
场景:
- 我有一个 PHP 脚本(通过 Web 访问),它生成一个 shell 脚本,即使在请求结束后也需要继续运行。
- 我需要将输出发送到磁盘上的文件(即“./script.sh > run.log”)
我尝试的每一种方法似乎都导致 PHP 仍在等待 shell 脚本完成执行。我尝试过的方法:
nohup ./script.sh > run.log &nohup ./script.sh > run.log 2>&1nohup ./script.sh > run.log 2>&1 &./script.sh &./script.sh > run.log 2>&1./script.sh > run.log &
我认为我可能遗漏了一些非常明显的东西。有什么想法吗?
【问题讨论】:
-
shell 脚本是否需要以与您的 Web 服务器相同的用户身份运行?运行某种守护进程来启动 shell 脚本,然后让您的 PHP 脚本简单地向守护进程发送一个触发器怎么样?另外,您的 PHP 脚本真的需要生成 shell 脚本吗?这对我来说似乎很冒险。