我正在编写一个c程序,它将在后台每隔几秒调用一次php脚本。因此,当您第一次调用此程序时,它将通过fork创建子进程,然后退出父进程,而子进程将处于无限循环中。到目前为止,在infinte循环中,我在hte 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")
及其所有变体后,代码仍然无法执行。有什么简单的我做错了吗?或者我应该使用不同的方法来检查脚本?
答案 0 :(得分:0)
正如您在问题中建议的那样,php脚本位于&#34; / var / www&#34;中。 您是否具有在该目录中执行的权限?
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执行测试。