Articles of exec

PHP的exec()不会运行所有的命令

我在Ubuntu上使用Nginx的PHP-FPM。 我试图从一个Web应用程序启动一个PHP任务。 以下两个示例在从CLI运行文件时正常工作,但不能从Nginx运行。 exec("notify-send 'Starting master at ".date("h:m:s")."'"); echo exec("/home/rohit/Projects/webapp/console/index.php blast 23"); 这两个从CLI和Nginx都能正常工作。 echo exec("whoami"); echo exec("pwd"); 我试图从www数据更改为PHP-FPM用户rohit(我的用户名),但没有运气。 我究竟做错了什么?

php-fpm不能运行exec,system,shell_exec,只有CLI

php-fpm , nginx exec在使用时.phpfiles() shell_exec() system()可以在命令行下正常工作。 例如,当运作良好: #php myphp.php myphp.php包含: <?php exec('ping -c 3 google.com', $output); print_r($output); ?> 但是,如果我把我的浏览器http://localhost/myphp.php ,它不再工作。 有任何想法吗? 我编辑 我做了一个文件,内容如下: #cat info.php <?php if(function_exists('exec')) { echo "exec is enabled"; } phpinfo(); ?> 在我的浏览器中,打印 exec已启用,y php info .. 我做了一个文件,内容如下: #cat info.php <?php // Check for safe mode if( ini_get('safe_mode') ){ // Do it […]

删除指定时间以前的所有文件并logging其function

我一直在努力这一段时间,经过大量的search决定是时候从专家的帮助。 我试图删除目录中的所有文件/filestodelete并在/filestodelete文件中记下他们,到目前为止,我已经想出了: find /filestodelete -mtime +93 -exec sh -c 'rm -rfv {}' > "/something/deletions.log" 当我尝试运行这个时,收到的错误是: find: missing argument to `-exec' (我把/something/deletions.log放在引号中,因为它实际上可能有空格 – 它被另一个bash脚本调用)。 在此先感谢您的帮助。

当它定义的程序作为parameter passing时execl不工作

下面的代码在linux上保存为abc.c。 它的execl()不能在下面的代码中工作。 有谁可以解释为什么? #include<stdio.h> #include<unistd.h> #include<sys/time.h> int main() { int r; char ch; printf("Enter any character"); scanf(" %c",&ch); printf("%c",ch); r=execl("abc",NULL); printf("r = %d",r); return 0; } r = -1作为输出。 请解释 谢谢 :)

如何从文件中有效地读取环境参数,与exec一起使用

我希望能够保存到一个进程的argv和environ文件中,而不是在以后的时间里使用保存到文件的参数进行fork和exec操作。 我能想到的唯一的devise是写入文件的参数列表作为一个长的string,但是我需要将它从string转换为一个string数组,这是可能的,但非常繁琐。 任何人都可以想到一个更好的方法来做到这一点?

如何使用find -exec删除部分文件扩展名

我想用“find”重命名一堆文件,重命名只是删除部分扩展名。 示例:abc.ext.DELAYED – > abc.ext 我试过以下,但他们根本不工作: find . -name *.DELAYED -execdir mv {} $(echo {} | sed 's:\.DELAYED::') \; find . -name *.DELAYED -execdir mv {} $(echo {} | cut -f 1 -d".") \;

运行程序的bash脚本,用于没有特定文件的目录

我需要一个Bash脚本来执行所有没有特定文件的目录的程序,并在同一个目录下创build输出文件。这个程序需要一个input文件,它存在于每个目录下,名字是* .DNA.fasta。假设我有以下目录也可能包含子目录 dir1/a.protein.fasta dir2/b.protein.fasta dir3/anyfile dir4/x.orf.fasta 我已经开始find没有特定文件名称是* .protein.fasta的目录 在这种情况下,我想dir3和dir4被列出(因为他们不包含*.protein.fasta )我已经试过这个代码: find . -maxdepth 1 -type d \! -exec test -e '{}/*protein.fasta' \; -print 但似乎我错过了一些不起作用的东西。 我也不知道如何处理整个故事。

从pipe道执行代码

我一直在做一个小小的黑客来获取可执行文件的文件大小。 我知道有一些工具可以正确执行可执行压缩,但这比我认为的更重要。 我的想法是用gzip压缩可执行文件,然后将其embedded另一个称为启动程序的c程序中作为数组。 当发射器运行时,它会build立一个如下的pipe道系统: parent launcher -> fork 1 of launcher -> fork 2 of launcher fork 1把它自己变成gzip,所以它解压任何父进程,并将解压后的版本吐出到fork 2。 这里是黑客踢的地方.Fork 2试图执行文件“/ dev / fd / n”,其中n是从fork 1到fork 2的pipe道的文件编号。本质上,这意味着fork 2将尝试执行任何二进制gzip吐出。 然而,这是行不通的(意外的惊喜)。我试着对我的样例实现进行testing,执行“/ dev / fd / n”的execv的行返回-1 EACCES(Permission denied)。 但是,如果我打开一个terminal并运行ls -l /dev/fd/我得到如下所示: lrwx—— 1 blackle users 64 Nov 10 05:14 0 -> /dev/pts/0 lrwx—— 1 blackle users […]

bash:运行“find –exec …”命令终止“\;”,全部存储在variables中?

我试图find一个方法在bash脚本来build立一个存储在一个variables的-exec find命令,我不能终止\; 如果它是variables的一部分,则被正确识别。 我可以通过添加\;来解决这个问题\; 当我通过variables调用命令时: local all_the_things=($($cmd \;)) 我不确定当$cmd存储一个不同的命令(当然有几个完全不同的上下文以不同的方式获取我需要的列表,其中只有一个是通过find命令),这可能会如何相互作用。 例如,如果我有以下目录和文件, $ ls -l /tmp/dir1 total 0 -rw-r–r– 1 joeuser joemama 0 Jul 15 10:19 1A -rw-r–r– 1 joeuser joemama 0 Jul 15 10:19 1B 我想发送每个文件名1A和1B到基basename 。 以下是我尝试过的几种方法: #!/bin/bash cmd="find /tmp/dir1 -exec basename {} \;" echo; echo "One slash: $cmd" $cmd cmd="find /tmp/dir1 -exec basename {} […]

execvp()和/或string的问题,为什么这个代码不起作用?

我写了这个代码打开一个文件,并执行文件的每一行exept注释“#”: MYFILE: ls -l ls -a cat /tmp/filex 码: #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> void run(const char *cmd, const char *arg){ char *argv[3]; asprintf(&argv[0],"%s", cmd); asprintf(&argv[1], "%s", arg); argv[2] = NULL; pid_t pid = fork(); if(pid == 0){ execvp(argv[0], (char * const *) argv); […]