【问题标题】:Run php script on background in PHP with nohup CLI使用 nohup CLI 在 PHP 后台运行 php 脚本
【发布时间】:2012-02-01 18:04:21
【问题描述】:

我正在尝试在后台运行一个 php 脚本。但它不起作用......我只能直接从 ssh 终端运行。使用相同的 cli 脚本。

在终端上,首先我访问路径:cd labs.lung.com.br/ztbot/bin/v2/php 之后,我在后台运行我的脚本:nohup php get_tweets.php > /dev/null &

而且它有效!但是,当我尝试用我的 php 脚本做同样的事情时:exec("nohup php get_tweets.php > /dev/null &"); 不起作用。两个文件都在同一个目录中。

我列出了该文件夹中的文件:exec("ls"); 并且它们处于同一级别...

直到 PID 返回,当我运行时:echo(shell_exec("nohup php get_tweets.php > /dev/null & echo $!"));

但由于某种原因,脚本没有运行。

【问题讨论】:

  • 您是否尝试过从 shell 执行中捕获/记录标准输出/标准错误输出?
  • 嗨!对不起,我知识贫乏,我该怎么做?
  • 我解决了! Fosco告诉我得到错误输出并得到它!愚蠢的错误..我试图从其他目录访问一个文件。对不起大家!谢谢你的帮助!

标签: background ssh command-line-interface php


【解决方案1】:

尝试使用 php 的绝对路径。

    echo(shell_exec("nohup /usr/bin/php get_tweets.php > /dev/null & echo $!"));

【讨论】:

  • 只返回PID(labs.lung.com.br/ztbot/bin/v2/php/sistema.php),但进程不运行。
  • 能否贴出以下代码的输出:$cmd = 'set'; echo "<pre>".shell_exec($cmd)."</pre>";
  • 酷!恭喜你弄明白了! :)
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多