微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过使用PHP重新启动Linux系统Debian

我想用PHP执行一个linux命令

myfile.PHP

<?PHP $output = shell_exec('ls'); echo "<pre>$output</pre>"; ?>

有用!

但是,当我从ls更改linux命令reboot ,没有任何反应!

struct sigaction不完整的错误

在Linux上安装RStudio软件包时遇到问题

而在Bash脚本循环?

创build新文件,但如果文件名已存在于bash中,则添加数字

/etc/rc.local和〜/ .bashrc有什么区别?

所以我试图find另一个解决scheme:

mycode.html:

<button type="button" onclick="/var/www/myscript.sh">Click Me!</button>

myscript.sh:

sudo reboot

它也不起作用!

任何人都可以帮助我解决这个问题。

谢谢你的帮助。

如何在每个匹配我的模式的文件添加一个string?

用脚本在bash中创build一个文件的多个副本

尝试使用g ++编译目标文件时,出现“-std = c ++ 11:command not found”错误

如何在Linux中以编程方式分离屏幕?

如何从系统调用号码获得Linux系统调用名称

缺省情况下,reboot命令必须以root身份执行。 如果您的Web服务器在root帐户下运行,您将能够做到这一点,但这是非常不寻常的命题。

通常情况下,Web服务器运行在有限的帐户,不能做太多,当然不能执行重新启动。 如果你真的想这样做的话,一定要非常小心。 提供这种方法的标准方法是创建特殊的包装器(很可能是suid),它允许在提升的权限下运行之前检查许多条件。

一个解决方案是让PHP创建标志文件或插入特殊的数据库条目,这将由另一个以root身份运行的服务进行检查,注意到该标志并最终执行重新引导。

正如@ mvp所说,你不能以非root用户身份执行重启。

一个简单的方法是使用cron作业。

你的myscript.sh将是:

#!/bin/bash touch /tmp/reboot.Now

然后创建一个cron作业来检查这个文件是否存在:

#!/bin/bash if [ -f /tmp/reboot.Now ]; then rm -f /tmp/reboot.Now /sbin/shutdown -r Now fi

然后将您的服务器配置为每分钟执行一次该脚本

* * * * * /usr/local/sbin/reboot.sh

而且不要忘了给执行权限的文件,当然。

希望能帮助到你

编辑:当然你的myscript.sh可以用fopen和fclose代替

除了Sal00m的回答

ROOT crontab

* * * * * /usr/local/sbin/checkreboot.sh

checkreboot.sh

#!/bin/bash if [ -f /var/www/html/reboot.server ]; then rm -f /var/www/html/reboot.server /sbin/shutdown -r Now fi

reboot.PHP

<?PHP $filehandler = fopen("/var/www/html/reboot.server",'w'); fwrite($filehandler,"Reboot Nown"); fclose($filehandler); ?>

From http://www.linuxquestions.org/questions/linux-newbie-8/shutdown-and-reboot-linux-system-via-PHP-script-713379/#post3486126

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐