使用 PHP 运行 shell 命令?
有时我的媒体服务器会宕机,我想知道是否可以使用 php 远程启动它来检查端口,如果它没有运行,则调用 cron (或其他方式)来运行 shell 命令。这可能吗,因为这对我来说不是一个强项。这是我使用 PuTTy 的过程。
- 登录 shell
- cd 到 source/red5/dist
- screen
- ./red5.sh
- CTRL-A 然后 D 分离
- 注销
Occasionally my media server goes down and I'm wondering if it's possible to start it remotely using php to check the port and if it's not running invoke cron (or some other way) to run a shell command. Is this possible because this is not a strong area for me. Here's the process I use with PuTTy.
- login to shell
- cd to source/red5/dist
- screen
- ./red5.sh
- CTRL-A then D to detach
- logout
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
最简单的就是写一个shell脚本。然后通过PHP登录远程控制台。
Simplest thing is to write a shell script. And then login to remote console via PHP.
实现您想要的效果的一个简单方法是在屏幕中运行它:
A simple way to achieve what you want is to run this in screen:
如果您可以编写一个执行您需要的 shell 脚本,那么 PHP 可以为您提供
exec()
、system()
和passthru()
。If you can write a shell script that does what you need, then PHP's has
exec()
,system()
andpassthru()
for you.PHP 实际上有一个特殊的运算符来执行 shell 命令,反引号:
将转到指定目录。 (但我对 shell 不太了解,所以我无法为您实现整个事情。)
如果您需要对执行进行更多控制(我不知道您是否需要这里),请使用 proc_open。
PHP actually has a special operator for executing shell commands, the backtick:
will go to the specified directory. (But I don't know much about shell, so I can't implement you the whole thing.)
If you need much control over the execution (I don't know whether you need here) use proc_open.
您可以在 php 上使用 corn job 并将所有命令放在 .sh 文件中并像这样运行
59 11 * * 1,2,3,4,5 root command file.sh?token
像这样的东西,它将被保存
you can use corn job on php and put all command on .sh file and run like this
59 11 * * 1,2,3,4,5 root command file.sh?token
something like this ,it will be save
这里有不止一个好的答案,但您应该选择执行 red5 的 init 脚本而不是 .sh 或 .bat。这里有预制的初始化脚本: http://code.google.com/p/bigbluebutton/downloads/detail?name=red5&can=2&q= 以及此处:http://www.videowhisper.com/forum.php ?ftid=48&t=init-file-red5-linux-installations-red5-linux-init.d-chkconfig
There is more than one good answer here, but you should opt for executing the init script for red5 instead of the .sh or .bat. There are pre-made init scripts here: http://code.google.com/p/bigbluebutton/downloads/detail?name=red5&can=2&q= and here: http://www.videowhisper.com/forum.php?ftid=48&t=init-file-red5-linux-installations-red5-linux-init.d-chkconfig