通过按钮单击在PHP中使用killall命令

时间:2015-02-23 22:28:55

标签: php node.js terminal

我希望在网页上有一个按钮,我可以用来杀死所有正在运行的节点进程。我通过使用sudo killall节点在Mac OS终端上运行良好,但是当我尝试从网站创建一个按钮时,我收到错误“找不到属于你的匹配进程”。 我的代码是,

<?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>

我猜这是因为我需要输入sudo的密码才是为什么它不能在网页上运行。有没有办法绕过这个或另一个选择呢?感谢..

1 个答案:

答案 0 :(得分:0)

运行php的用户可能没有使用sudo运行命令的权限(或者至少他不能输入密码)

如果你真的想让php有权运行这个命令你必须弄清楚哪个用户正在运行php(echo`whoami`;) 然后让他有权在不要求输入密码的情况下运行此命令,运行sudo visudo来编辑sudo配置

在其中,在文件末尾添加以下行:

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

注意:/usr/bin/sudo

之间有空格