2015-08-26 54 views
1

我正在使用覆盆子pi進行學習和實驗,並且我製作了一個程序,該程序只需在pi B +上的GPIO引腳29(帶接線pi)上閃爍LED即可。我用這個過程無限制地打算用我的網頁上的另一個按鈕來殺死它,但我無法弄清楚。我似乎甚至不能阻止它進入pi。這不是一個真正的問題,因爲我可以重新啓動pi並關閉它,但是學習會很好。我想從我的網頁中殺死它(我使用的是Apache服務器)。 下面的代碼:我該如何殺死一個無限的PHP進程?

<?php 
    system ("gpio mode 29 out"); 
    while (true){ 
    system ("gpio write 29 0"); 
    sleep(1); 
    system ("gpio write 29 1"); 
    sleep(1); 
    header('Location: remoteGPIO.html'); 
} 
?> 

,所以我可以殺了這與沒有使用JavaScript的另一個按鈕?我不介意使用它,但我想避免它。如果我不能做到這一點就沒什麼大不了的。 我開始使用這個按鈕:

<form action="GPIO29FLASH.php"><button>begin</button></form> 

在此先感謝!

+0

也許使用php會話和if語句,只有當session變量爲true時才允許它運行。然後,您只需按下按鈕即可將會話變量切換爲0或1. –

回答

1

一個好主意可能是使用會話。使結束按鈕轉到另一個php腳本,該腳本會將某些會話變量設置爲true。現在讓您的當前腳本閃爍一次,然後重新加載頁面。如果會話變量已設置 - 只需終止腳本。 它甚至可以在不通過將while循環更改爲while (!isset($_SESSION['var']) && $_SESSION['var'] !== true)來重新加載頁面的情況下工作,但我不確定$ _SESSION變量是否刷新而不重新加載頁面。 希望工程。

+1

擊敗我18秒! #%^%$&;) –

+0

@GaryHayes哈哈,sry兄:) – DannyPhantom

+0

@DannyPhantom我該如何聲明一個會話變量?我有另一個腳本試圖通過添加「include'GPIO29FLASH.php'來改變我(嘗試)相互共享的變量;」「當它試圖改變變量以使條件不真實時。 (對不起,忘記提及我將while循環更改爲「while($ i == 1)」,並使停止腳本(嘗試)將其設置爲0 – Trevader2413