【问题标题】:Is there any way to get realtime output from shell script to website? [duplicate]有什么方法可以从 shell 脚本到网站的实时输出? [复制]
【发布时间】:2020-04-05 11:48:48
【问题描述】:

当客户按下网站上的按钮时,我制作了一个 shell 脚本来在服务器上安装 web 项目。

我正在通过 larval 作业运行命令

exec("/home/foldername/installation.sh

这个shell脚本包含;

  • 创建文件夹
  • 创建数据库并导入sql文件
  • 为域创建虚拟主机。(使用 sudo)
  • 正在重新启动 Web 服务器。 (带 sudo)

一切正常。我想向客户展示这个 shell 脚本的实时输出。 我怎样才能做到这一点?

我尝试了交响乐过程。但它不允许我运行 sudo httpd restart 并在根文件夹中创建文件。

【问题讨论】:

    标签: php linux laravel shell centos


    【解决方案1】:

    您可以使用Symfony\Component\Process\Process 类来包装您的脚本,并能够设置回调来处理实时输出。结合 websocket 广播,您可以在您的网站上显示它。

    这里是官方文档:https://symfony.com/doc/current/components/process.html#getting-real-time-process-output

    【讨论】:

    • 你怎么知道他在用symfony?他的问题中没有提到。恕我直言,这应该是评论。
    • 我试过 Symfony。 sudo 命令不起作用
    • @Nic3500 他正在使用 Laravel,所以他在 vendor 中自动获得了 Symfony 类,因为 Laravel 是基于 Symfony 构建的
    • @Shizzen83 我可以用 Symfony 进程重启 Web 服务器吗?
    • 取决于你从哪里运行它,是的,你可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 2020-10-02
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多