PHP脚本不会在后台运行

标签 php macos command-line-interface

我正在尝试在后台运行一个 php CLI 脚本,但它不会运行 - 它的状态为 Stopped SIGTOU(尝试写入输出) - 这是详细信息

  • Mac OS X Lion 10.7.2
  • 带有 Suhosin-Patch (cli) 的 PHP 5.3.6(构建时间:2011 年 9 月 8 日 19:34:00)

我创建了一个基本脚本 test.php

<?php echo 'Hello world'.PHP_EOL; ?>

以下是各种测试的结果:-

  • php -f test.php(显示 Hello world)
  • php -f test.php >test.log 2>&1(Hello world 被放入 test.log)
  • php -f test.php >test.log 2>&1 & --- 我得到 [1]+ Stopped(SIGTTOU) php -f test.php > test.log 2>&1 -- 作业只是坐在那里什么都不做 什么都不记录 但是 lsof 显示日志文件已打开

与PHP有关吗?类似的 shell 脚本在后台执行没有问题。

最佳答案

如果在您的 php 构建中启用了 readline,只需将/dev/null 作为输入传递即可。

在您上面的示例中,它将是:

php -f test.php </dev/null >test.log 2>&1

关于PHP脚本不会在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194755/

相关文章:

php - 在 php 运行时包含来自外部站点的数据

php - 按 NextPageID 字段排序数组

php - 允许使用 PHP 中的抽象工厂模式进行自定义类实例化

python - mpi4py 返回排名差异

objective-c - 以编程方式获取 Mac 上所有正在运行的进程的列表

php - 如何创建一个 HTML 文本框,它在顶部有一个水平菜单选项卡可供选择?

ruby-on-rails - 在 Ruby 1.9.2 中使用 brew

linux - Hive 的 CLI 使用哪个 hive-site.xml

vue.js - 找不到模块 '@/assets/<file-name-here>.svg'。 @vue/cli 版本 : 4. 2.3 和 4.3.1

c# - C++ 回调函数中的内存泄漏