【问题标题】:shell_exec not working with crontabshell_exec 不能与 crontab 一起使用
【发布时间】:2016-10-05 11:24:39
【问题描述】:

我正在尝试在 php 中执行此命令:

<?php
    shell_exec('echo -e "`crontab -l`\n* * * * * mycommand" | crontab -');

当我这样做时,什么都没有发生,没有错误,没有消息,什么都没有发生。但是当我直接在 bash 上输入时,效果很好!

所以我做了一些谷歌和一些人告诉在命令末尾使用2&gt;&amp;1。所以:

<?php
    shell_exec('echo -e "`crontab -l`\n* * * * * mycommand" | crontab - 2>&1');

但现在当我回显输出时出现此错误:

"-":0: crontab 文件中的小错误,无法安装。

会发生什么?

【问题讨论】:

  • 您不会收到任何错误,因为 shell_exec 不会输出任何错误。它返回命令的任何输出,但不输出该输出本身。如果要捕获返回值/错误,则需要改用exec()
  • exec 没有输出。 shell_exec 有,对吧?我在第二次测试中得到了 shell_exec 的输出。
  • shell_exec — Execute command via shell and return the complete output as a string 没有地方说“输出到屏幕”。
  • 我正在回显字符串。我会在问题上说出来。

标签: php bash cron


【解决方案1】:

在 php 中尝试 passthrough,这应该会在屏幕上显示错误。

http://php.net/manual/en/function.passthru.php

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2021-09-26
    相关资源
    最近更新 更多