我使用PHP的exec函数来运行一些python脚本。 我使用的是Apache,它logging了error.log文件中的所有错误。 无论什么时候出现语法错误,它都会被logging在Apache错误日志中。 但是现在我已经安装了nginx和php-fpm。 这里的问题是,每当python出现错误时,nginx不会loggingerror.log中的任何内容。 在exec中作为第二个parameter passing的$ output也是一个空数组。 所以现在我无法从Python或terminal获取错误。 请告诉我如何得到这些错误….
我想弄清楚如果一个游戏服务器正在运行。 我发现了很多肮脏的方法,所以我想通过调用一个检查进程是否正在运行的PHP脚本来简化它。 那么我正在尝试的是: <?php exec("bin_unix/linux_server", $output, $return); if ($return == 0) { echo "Ok, process is running\n"; } else { echo "Process is not running\n"; } 但它不工作(因为我相信这个过程正在运行)..它不是一个“真正的”过程不要怪我,我不是一个Linux专家。 所以我做了什么来运行这个服务器是以下命令: cd /path/to/server/ && nohup bin_unix/linux_server & 我想在exec();的bin_unix/linux_server exec(); 是错误的,但是它是我用ps aux得到的唯一静态信息。 process_id会经常改变,所以我不知道该input什么。
在linux中,我可以通过在现有的terminal上执行gnome-terminal命令来打开一个新的terminal,但是我怎样才能用参数打开新的terminal呢? 我试过gnome-terminal –command ls但新terminal打开和closures之前,我可以看到有什么事情发生在那里..任何build议我怎么能做到这一点?
所以我写了一个使用pipe道的程序,并且执行一些算术运算。 我不知道如何debuggingpipe道和不同的stream程,但是从我所看到的,必须与我的pipe道读取数字有关。 所以我的设置到目前为止是儿童创build,并根据他们给定的操作,他们execl的不同程序,将计算pipe道中的书面价值。 我不知道在读取结果之前,是否应该在父项中写入值,然后在父项中执行等待或什么。 我不断得到Z作为我的输出。 所以这是我execl文件之一,其他文件看起来完全一样,它只是显示其相应的操作: #include <iostream> #include <fstream> #include <cstdio> #include <cstdlib> using namespace std; main(int argc, char *argv[]) { int x, y, z; while (read(0, (char *)&x, sizeof(int)) && read(3, (char *)&y, sizeof(int))) { z = x * y; if (argc > 1) cerr << "multiply: " << x << " * […]
我使用PHP exec()在Linux中执行egrep。 输出是在Linux中从命令行实际执行该语句时的文件列表。 当我在PHP中回显结果时,它只显示输出的最后一行。 我想把这个列表绑定到一个数组,所以我可以在PHP中进一步操纵它。 我已经尝试使用array()将输出绑定到数组,然后使用print_r显示它,但它只显示数组中的一个项目,即最后一行。
我没有真正进入unix,这就是为什么这个东西对我来说有点奇怪。 操作系统是CentOS 6。 我读了几乎所有有关wkhtmltopdf的话题,但是我的问题依然存在。 其实这不是一个wkhtmltopdf问题,而是一个权限问题。 总结一下:wkhtmltopdf可以在命令行中运行,但不能和php exec()一起运行。 但是wget和php exec()一起工作正常: 我可以在命令行执行wkhtmltopdf,工作正常: /usr/bin/wkhtmltopdf "test.de" "/var/www/html/test/test.pdf" 2>&1 我可以用php执行wget,工作正常: exec('/usr/bin/wget -O /var/www/html/test/test123.txt "test.de" 2>&1', $output, $return_var); 但是我不能用php执行wkhtmltopdf: exec('/usr/bin/wkhtmltopdf "test.de" "/var/www/html/test/test.pdf" 2>&1', $output, $return_var); 这导致“sh:/ usr / bin / wkhtmltopdf:权限被拒绝” 我检查了/ usr / bin / wkhtmltopdf并将其与/ usr / bin / wget进行比较。 权限是相同的:rwxr-xr-x或0755 即使我将/ usr / bin / wkhtmltopdf的chmod设置为777,并将所有者设置为apache,错误仍然是相同的。 也许这是一个百胜的问题? Becauce我通过yum和wkhtmltopdf安装了wget。 […]
我是meteor的新手。 有人帮我吗? 我怎么能运行一个使用meteor的Linux命令? 我在另一篇文章中看到过,我build议使用: sys = __meteor_bootstrap__.require('sys'); 但我得到错误,似乎meteorbootstrap剂量不需要function。
我正在尝试使用wkhtmltopdf将html文档转换为pdf。 我将在Linux上使用的命令: wkhtmltopdf 15.52579.html 15.52579.pdf 。 这首先输出像Loading pages (1/6) [> ] 0% [===== ,加载到100%,然后显示: Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done 我想要php来执行这个命令。 我尝试使用php的exec("wkhtmltopdf 15.52579.html 15.52579.pdf")和shell_exec("wkhtmltopdf 15.52579.html 15.52579.pdf") ,通过添加2>&1捕获stderr。 我也试过proc_open函数。 每次,我的结果是Loading pages (1/6) [> ] 0% [======> ] 10% 。 它看起来像命令返回太快,不允许程序完成,实际上创buildPDF。 php正在运行的用户具有执行该程序的正确权限。 脚本是由网页执行的,应该在几秒钟内完成。 我错过了什么?
我想更改某种types的文件上的文件名称。 它应该recursion运行。 我已经差不多了,不知道如何处理参数{}(绝对path)。 find $PWD -type f -name '*.jpg' -exec echo " {} " \; 例如,我想要使用reg更改扩展名。 expression式,而不是命令重命名等。我有时需要新的名称传递给一个函数,因此重命名不适用here.应该是可能的工作与参数,例如在参数$ each: for each in /* do echo "${each\./\}.png" done 如何在参数{}上应用正则expression式,如下所示:“$ {each \。/ \} .png”?
我一直在我的C ++程序中使用linux exec()函数,并试图执行脚本(perl,python,php,…)。 从bash我可以执行例如:sh -c“perl /home/ignition/test.pl” 但 execl("/bin/sh", "sh", "-c", "\"perl /home/ignition/test.pl\"", NULL); 不起作用。 这工作: execl("/bin/sh", "sh", "-c", "/home/ignition/test.pl", NULL); 但是这依赖于perl解释器的正确path被指定为脚本的第一行,这不是非常通用的,例如这对php脚本不起作用。 我想使用sh -c方法,以便解释器的path自动parsing… 任何人都可以指出我做错了什么?