昨天遇到遇到一个很坑爹的问题,改了快两天,终于改好了。赶快记录一下新鲜的干活。

我昨天遇到一个很神奇的问题,代码归结出来就是下面这段,其实就是在php当中,通过exec来执行sipp的命令(具体sipp命令里面的内容被我和谐了哈,主要看原理)。

文件名: sendSip.php

function SendSip(){
        $sip_cmd = "/usr/local/bin/sipp set var_date 1468911702";
        exec($sip_cmd, $return, $result);
        file_put_contents("/tmp/send_sip", var_export($return,true) . "\n", FILE_APPEND);
    }

上面的函数在linux环境下,我手动执行,php sendSip.php, 则能正常返回信息,但是我讲这个命令加入crontab中去执行的时候,就很神奇的报出 Error opening terminal:unknown 这个错误。害我纠结了很久,最后发现我linux下的的$TERM的值为xterm,然后crontab执行的时候,$TERM的值为dump,然后导致会报出上面的错误。最后查看官方的php文档才找到和这个相关的东西,谷歌百度都是废物啊。

http://php.net/manual/de/function.exec.php 这是php官方文档对于exec方法的解读。主要看下面截图的内容,翻译就是有的shell命令可能需要你去设置终端环境:
这里写图片描述

然后我将命令之前加上了TERM=xterm,这段,将终端修改了,然后就能正确执行了。

另外附送一个exec的用法详解,首先主要是他有三个参数,第三个参数能表示命令是否正确执行,然后第二个参数,相当于执行结果,不能通过赋值的方式将exec操作的结果赋值给其他参数哈:
string exec(string command, string [array], int [return_var]);

Command – 需要执行的命令
Array – 是输出值
return_var –是返回值0或1,如果返回0则执行成功,返回1则执行失败。

还有一个技巧就是使用管道命令, 使用 2>&1, 命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析。

GitHub 加速计划 / term / terminal
94.53 K
8.17 K
下载
The new Windows Terminal and the original Windows console host, all in the same place!
最近提交(Master分支:2 个月前 )
d04381ec "HighContrast" is not a possible requested theme. So `_UpdateBackgroundForMica()` would force the settings UI to be light or dark. To fix this, we just check if we're in high contrast mode and, if so, we don't bother setting the requested theme. 8 天前
e83434ff Turns out that having the styles for the KeyChordText and ParsedCommandLineText be empty for high contrast mode caused the issue. Since we're already using theme resources for the colors, we automatically adjust properly to whatever the high contrast theme is (Thanks XAML!). Bonus points: - we didn't need the theme dictionaries anymore, so I just moved them to the ResourceDictionary directly - ParsedCommandLineTextBlockStyle isn't used. So I removed it altogether. Validated command palette with multiple high contrast themes. See PR thread for demo. Closes #17914 8 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐