标签: exec

无法使用PHP exec执行PHP脚本

我试图使用PHP exec调用调用一个需要几秒钟(与第三方的Web服务)的脚本.经过多次努力,我把它减少到了经典的hello world例子.调用脚本如下所示:

exec('/usr/bin/php /home/quote2bi/tmp/helloworld.php > /tmp/execoutput.txt 2>&1 &');
Run Code Online (Sandbox Code Playgroud)

当我运行它时,输出execoutput.txt包含调用脚本页面的副本,而不是hello world我预期的.

为什么我不能使用exec执行此PHP脚本?请注意,当我将命令更改为类似命令时ls -l,输出是按预期方式列出的目录.顺便说一下,如果重要的话,我把调用的脚本chmod到了755 ......

更新 - 我将exec调用移动到调用脚本的末尾,至少现在我没有看到在输出中执行调用脚本.感谢海报,我会尝试其中的一些想法.

救命!

谢谢Steve

php exec

15
推荐指数
3
解决办法
7万
查看次数

使用用户插入的变量清理exec命令的最佳方法

我正在为我们公司使用的一个可怕的软件编写一个Web界面.该软件没有真正的用户界面,需要我们为我们的客户提供putty访问我们的系统甚至提取数据.我的Web界面必须运行一个exec();函数,它必须传递用户输入的一些变量.

$command = "report-call '$type' '$study' '$server' '$tag' '$specopt1' '$specopt2' '$specopt3' '$specopt4'";
$last_line = exec($command, $output, $returnvalue); 
Run Code Online (Sandbox Code Playgroud)

现在我假设我可能只是从$command变量中删除任何分号并且是安全的,但我不确定,这就是为什么我在下个月上线之前在这里提出这个问题.

什么是最好的消毒方法$command?我确实需要在变量中使用一些特殊的字符 [ ] < > ! # $.

php exec sanitize

15
推荐指数
1
解决办法
7262
查看次数

linux上的进程堆栈大小如何与pthread,fork和exec相关

我有一个关于Linux上进程的堆栈大小的问题.此堆栈大小是否在链接时确定并在ELF文件中编码?

我写了一个程序,打印出它的堆栈大小pthread_attr_getstacksize(&attr, &stacksize);.如果我直接从shell运行这个程序,它会提供大约10MB的值.但是当我exec从一个属于多线程程序的线程中,它给出了大约2MB的值.

所以我想知道哪些因素会影响fork and exec某个父进程的进程堆栈大小.是否可以fork and exec在孩子之前的运行时在其父级中设置进程的堆栈大小?
提前致谢.

size stack fork pthreads exec

15
推荐指数
1
解决办法
2万
查看次数

如何在linux/unix中找到-exec cd

我正在搜索配置文件夹,并尝试更改到该目录:

find . -name "config" -exec cd {} \;

有一场比赛,./my-applications/config但在我尝试之后它会说:

find: `cd': No such file or directory

我究竟做错了什么?

unix linux exec find

15
推荐指数
2
解决办法
1万
查看次数

Node.js会产生颜色吗?

我正在使用Mocha来测试我的应用.目前,我正在使用Makefiles,但我想切换到Cakefiles.当我通过Cake运行我的测试时,Mocha的颜色不会显示在控制台上.

这是一个例子:

task 'test', 'test project', (options) ->
  fetchTestFiles './test', (err,files) ->
    mocha = spawn 'mocha', files   
    mocha.stdout.pipe(process.stdout, end: false)
Run Code Online (Sandbox Code Playgroud)

现在,我尝试这样做:

task 'test', 'test project', (options) ->
  fetchTestFiles './test', (err,files) ->
    mocha = spawn 'mocha', files, customFds: [0..2]
Run Code Online (Sandbox Code Playgroud)

这是有效的,但Node.js文档声明customFds已弃用.有没有办法通过颜色而不使用customFds

javascript process exec node.js coffeescript

15
推荐指数
2
解决办法
4091
查看次数

使用Runtime.getRuntime().exec从定义的目录执行文件

我只想从特定文件夹执行我的文件.在我的情况下/ data/data/my-package/files /.所以我试过:

 Process process2=Runtime.getRuntime().exec("cd /data/data/my-package/files/");
 process2.waitFor();
 process2=Runtime.getRuntime().exec("./myfile");
Run Code Online (Sandbox Code Playgroud)

它不起作用.请问有没有人能以正确的方式告诉我.谢谢

java shell exec

15
推荐指数
1
解决办法
3万
查看次数

php exec()后台进程问题

我正在尝试使用以下命令在后台处理文件,但它什么都不做.

exec("php csv.php $file $user > /dev/null &", $output);
Run Code Online (Sandbox Code Playgroud)

如果我删除> /dev/null &然后文件进程,但不在后台.

exec("php csv.php $file $user", $output);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php exec

15
推荐指数
1
解决办法
2万
查看次数

在nodejs(windows)中显示正在运行的子进程'输出

例如,我正在运行节点中最基本的webServer(我正在使用Windows),其中包含以下代码(名为server.js):

    var http = require('http');
       http.createServer(function (req, res) {
         res.writeHead(200, {'Content-Type': 'text/plain'});
         res.end('Hello World\n');
       }).listen(1337, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)

我想将它作为子进程运行,并且使用以下代码成功完成:

var exec = require('child_process').exec;
var serv = exec('node server.js', function(error, stdout, stderr){
    console.log('outputs & errors:' + error, stdout, stderr);
});
Run Code Online (Sandbox Code Playgroud)

但是,一旦运行第二个文件,我什么也得不到.没有"输出和错误",没有"服务器运行在......".如果我在浏览器中键入localhost:1337,我会得到"hello world",所以我知道它正在运行.有没有办法管道"服务器正在运行......"所以我可以"肯定"它在听?

exec child-process node.js

15
推荐指数
1
解决办法
1万
查看次数

使用docker exec执行两个命令

我正在尝试在docker exec中执行两个命令.具体来说,我必须在特定目录中运行命令.我试过这个,但是没有用:

docker exec [id] -c 'cd /var/www/project && composer install'
Run Code Online (Sandbox Code Playgroud)

-c未检测到参数.我也试过这个:

docker exec [id] cd /var/www/project && composer install
Run Code Online (Sandbox Code Playgroud)

但该命令composer installdocker exec命令后执行.我该怎么做?

linux command exec composer-php docker

15
推荐指数
1
解决办法
2万
查看次数

切换用户而不创建中间过程

我可以使用sudosu以另一个用户身份执行命令.通过组合exec,我能够用sudo或替换当前进程su,以及运行命令的子进程.但我想用另一个用户运行的命令替换当前进程.我怎么做?

使用sleep inf命令和someguy用户进行测试:

exec su someguy -c 'sleep inf'
Run Code Online (Sandbox Code Playgroud)

这给了我pstree:

bash???su???sleep
Run Code Online (Sandbox Code Playgroud)

exec sudo -u someguy sleep inf
Run Code Online (Sandbox Code Playgroud)

bash???sudo???sleep
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我只想要sleep命令,bash作为父命令.

我希望我能有什么的一些序列做到这一点由C setuid()exec().

linux bash shell sudo exec

15
推荐指数
2
解决办法
604
查看次数