本文目錄一覽:
- 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”);
原創文章,作者:QUJJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133447.html