使用php重启pc

时间:2010-02-21 14:58:54

标签: php

是否可以使用php重新启动电脑?

6 个答案:

答案 0 :(得分:3)

您可以使用exec()system(),但权限将是问题,因为PHP运行在apache的用户身上。

作为一种快速解决方法,可以授予用户apache重启权限。根据您的系统,设置这可能非常困难。

您可以做的另一种方法是让Cron任务(属于root)每隔几分钟(或几秒钟)检查一些文件,并让您的PHP程序编辑该文件。该文件设置为只能由Apache编辑。这样做要容易得多。

希望这有帮助。

答案 1 :(得分:1)

您可以使用exec()system()方法运行系统命令来重新启动计算机。

答案 2 :(得分:1)

在我们的系统中,我们执行保罗所说的那个。

  1. 有一个脚本可以写入某个命令dir(例如:/ data / command /)。你必须加强这个脚本。
  2. 有一个每分钟运行的cron会检查你的命令目录。如果它有一个restart命令,那么该cron将向系统发出一个重启命令。

答案 3 :(得分:1)

我对运行Debian / Lenny的CarPC设置有同样的需求。每当连接到该服务的端口时,我都将inetd配置为运行/ sbin / reboot。

然后我有一个PHP脚本对本地主机/端口执行fsockopen()并立即执行重启。

快速设置(debian - 为您的系统修改):

/etc/services中添加一行"reboot 88/tcp"(或您想要的任何端口) 在/etc/inetd.conf添加一行"reboot stream tcp nowait root /sbin/reboot" Restart inetd using /etc/init.d/openbsd-inetd restart

现在连接到localhost:88,它将重启系统。

如果您的系统运行xinetd,您可以将其配置为仅接受来自localhost的连接以稍微加强安全性。无论如何,这仍然是一个黑客。

答案 4 :(得分:0)

通常,您需要超级用户权限才能重新启动计算机。但以超级用户身份运行Web服务器是一种不好的做法。我建议做一些进程间通信。 E. g。 PHP脚本在文件中写入一个密钥,然后一个cron作业读取该文件并重新启动计算机。

我不确定通过网络重启计算机是个好主意。你为什么要这样做?

答案 5 :(得分:0)

这个答案适用于基于Linux的服务器。

危险:从php使用system(),在系统中,使用“sudo shutdown -r now”重启,“sudo shutdown -h now”关闭。

在/ etc / sudoers中,添加为apache用户运行shutdown的权限

一个问题是sudo可以提示输入密码。

删除apache用户的密码(但不要运行sshd,telnetd,ftpd等等)或查看你的/ etc / sudoers是否有无密码配置。关于第200行的“man sudoers”和第270行再次说Tag_Spec可以包含NOPASSWD来指定用户不必使用其密码重新进行身份验证来运行sudo命令。

SAFER:token / cron让php在某处写一个文件。编写一个由cron作为root运行的脚本,这样如果该文件存在,则删除该文件,然后运行shutdown或restart。