2015-02-23 42 views
0

我正在尋找一個網頁上的按鈕,我可以使用它來終止正在運行的所有節點進程。我已經通過使用sudo killall節點從Mac OS上的終端正常工作,但是當我嘗試從網站創建按鈕時,我收到錯誤'找不到與您相匹配的進程'。 我的代碼,在一個按鈕中使用php中的killall命令點擊

<?php 
if (isset($_POST['button'])) { exec('/usr/bin/ sudo killall node'); } ?> 
<form method="POST"> 
<p> 
    <input type="hidden" name="button" value="1"> 
    <input type="submit" value="Stop"> 
</p> 
</form> 

我猜這是因爲我需要在須藤就是爲什麼它不會對網頁的工作鍵入密碼。有沒有辦法解決這個問題或其他選擇?感謝..

+0

無之間的空間,你不需要輸入任何剛成立的sudoers文件正確。但是除非你把命令和它的參數放在一個腳本中,否則你可以讓php殺死你的系統上的任何進程。 – symcbean 2015-02-23 23:00:07

回答

0

用戶運行PHP有可能不是權限來使用sudo運行命令(或者至少他不能輸入密碼)

,如果你真的想給PHP運行此命令的權利你必須弄清楚哪個用戶正在運行php(echo`whoami`;) ,然後給他右鍵運行這個命令而不要求輸入密碼,運行sudo visudo來編輯sudo配置

在裏面,加入以下內容在文件結尾的行:

your_php_user ALL = (root) NOPASSWD: /usr/bin/killall node

記:你有/usr/bin/sudo

+0

嗨,謝謝你。我已將該行添加到sudoers文件中,它允許我在終端中使用sudo命令,而不必鍵入密碼,但它仍然無法在網頁上使用。林不知道我是否使用正確的路徑能夠使用sudo。我首先必須指定sudo的路徑,然後指定killall的路徑嗎?像這樣 - {exec('/ usr/bin/sudo/usr/bin/killall node'); }這不適合我,但它應該是這樣的? – matt 2015-02-24 13:07:04

+0

您是否嘗試顯示運行Web服務器的用戶的名稱? (echo \'whoami \';) – Mathieu 2015-02-24 16:31:07

相關問題