我正在编写一个c程序,它将在后台每隔几秒钟调用一个php脚本。所以当你第一次调用这个程序时,它将通过fork创建一个子进程,然后退出父进程,而子进程将处于无限循环中。到目前为止,在这个无限循环中,我在while循环中有system("echo hello >> daemon.txt")
行,它相应地更新,所以我知道这个过程是有效的。然而,当我调用我的脚本,它似乎没有执行。
我的php脚本timeChecker.php
#!/usr/bin/php
<?php
$handle =fopen("hello","a");
fwrite($handle, "boo'n");
fclose($handle);
?>
当使用php timeChecker.php或。/timeChecker.php从命令行调用时,代码将按预期执行。
然而,在尝试了system("php timeChecker.php")
, system("/usr/bin/php timeChecker.php")
, system("/usr/bin/php var/www/timeChecker.php")
, system("/var/www/timeChecker.php")
等多种调用命令的方法后,代码仍然没有执行。是我做错了什么简单的事情吗?或者我应该简单地使用另一种检查脚本的方法?
正如您在问题中建议的那样,php脚本位于"/var/www"中。您有在该目录中执行的特权吗?
test是通过system()调用脚本的c程序。我让它这样工作:
sudo mkdir /var/www/script_dir
sudo mv timeChecker.php /var/www/script_dir
sudo mv test /var/www/script_dir
sudo chown -R myusername:myusername /var/www/script_dir
从script_dir执行test .