【问题标题】:Executing shell script over website: Always run in one single instance在网站上执行 shell 脚本:始终在一个实例中运行
【发布时间】:2026-01-31 16:20:07
【问题描述】:

我正在使用 html/php 在网站上调用 bash 脚本。有多个可用的 html 按钮总是启动相同的脚本,但参数不同。 问题是,每次我通过单击这样的按钮开始调用脚本时,都会打开一个新的脚本实例。

是否有可能“拾取”正在运行的脚本实例而不是开始一个新实例?

注意:我不能只退出脚本的活动实例并启动一个新实例,因为一些后台函数正在运行,然后也会停止。

【问题讨论】:

  • 启动新实例有什么问题?
  • @thiru 大约每 2 分钟点击一个按钮,因此这意味着每 2 分钟一个新实例 -> 失去控制,需要大量 cpu(在 Raspberry Pi 上运行),.. .
  • 好的。不可能“拾取”正在运行的实例。相反,您可以修改脚本以使其成为后台进程(将始终运行)并通过管道将参数发送给它。
  • 非常感谢,成功了!

标签: php html bash shell


【解决方案1】:

感谢@thiru 的提示! 我使用 instruction from here 使用 mkfifo 创建一个管道,然后将参数回显到管道中。

【讨论】: