本文目录一览:
- 1、linux如何用shell运行一个php脚本?
- 2、如何使用PHP调用SHELL命令?调用后并且执行SHELL命令
- 3、PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
- 4、如何让php执行shell
linux如何用shell运行一个php脚本?
在 Linux 下执行 php 脚本时通常是使用以下命令(视php安装路径而定):
/usr/local/php/bin/php test.php
另外,为简化输入可把此php执行程序 copy 到系统命令目录下:
cp /usr/local/php/bin/php /usr/sbin/
验证:输入以下命令,如正确获取 php 版本,说明操作成功。
php -v
参考:
如何使用PHP调用SHELL命令?调用后并且执行SHELL命令
解除sysyem() passthru() exec()等函数禁用。
执行passthru('ps -ef');可以得到这条命令的输出内容。正则得到所需内容,然后再调用这些函数执行操作。具体用法翻翻手册。
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
复制代码
代码如下:
$command
=
'/usr/bin/php
/pub/www/u111/job/Crondo/auto_collector.php
';
$process
=
proc_open($command,
array(),$pipes);
$var
=
proc_get_status($process);
proc_close($process);
//pid就是进程ID,至于为什么要加1,我现在也没有搞懂,经过多次的测试,发现$var['pid']得到的ID比实际的少1
$pid
=
intval($var['pid'])+1;
//杀死进程
proc_close(proc_open('kill
-9
'.$pid,
array(),
$pipes));
如何让php执行shell
php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码
例子:system("/usr/local/bin/webalizer/webalizer");