php脚本等待shell脚本执行完成

Posted

技术标签:

【中文标题】php脚本等待shell脚本执行完成【英文标题】:Php script waiting for shell script execution completion 【发布时间】:2016-05-23 06:30:26 【问题描述】:

我有一个在后台运行的 shell 脚本,我想知道 shell 脚本执行完成并将其发送到当前在浏览器中运行的 php。PHP 和 shell 脚本现在没有链接。如何获取 shell脚本完成并向 PHP 发出信号

【问题讨论】:

那就用 cronjobs 吧! 【参考方案1】:

我知道这更像是一个概念性问题。想到的两种最简单的方法是:

1) 使用从 shell 脚本创建的“标志文件”。当文件存在时,这意味着脚本已经完成。当没有文件时,脚本仍然运行。或者其他方式。无论如何,这都是 shell 脚本的常用方法。 有关如何从您的 shell 脚本创建它的更多背景信息,请参阅http://www.cyberciti.biz/tips/shell-scripting-bash-how-to-create-empty-temporary-file-quickly.html

从您的 PHP 代码中,您可以测试该文件是否(不)存在。 PHP为此提供了很多功能,例如。查看file_exists ( string $filename ),查看http://php.net/manual/en/function.file-exists.php

2) 从 shell 脚本中,当您调用 php 脚本时使用 URL 参数,从您的 PHP 代码中,您读取参数并使用它。 PHP 有很多功能(例如查看$_SERVER['QUERY_STRING'])。有关使用 $_SERVER 变量的更多信息,请参阅 http://php.net/manual/en/reserved.variables.server.php

希望这会有所帮助...

【讨论】:

【参考方案2】:

这里有你需要的一切、例子、解释等等。

http://php.net/manual/en/function.shell-exec.php

【讨论】:

这个答案有什么问题?它可以满足原始海报的要求。 答案是从 php 执行一个 shell 脚本,但我要求一个已经在后台运行的 shell 脚本

以上是关于php脚本等待shell脚本执行完成的主要内容,如果未能解决你的问题,请参考以下文章

执行脚本sh install.sh后:需要输入1等待5秒并回车,等待10秒输入y并回车 ,如何用脚本完成这两个操作。

shell 一次按顺序执行多个脚本

AppleScript-等待shell脚本完成

php如何执行shell脚本

shell脚本实现转圈、进度条等效果

从 PHP 脚本执行 shell 脚本