北京关于“bash运行php”的问题,小编就整理了【3】个相关介绍“bash运行php”的解答:
北京php多线程教程?PHP+shell实现多线程的方法
先写个简单的php代码,这里为了让脚本执行时间更长,方便看效果,sleep一下,呵呵!先看下test.php的代码:ls
北京PHP代码:
北京for ($i=0;$i<10;$i++) {
echo $i;
北京sleep(10);
?>
在看下shell脚本的代码,非常简单
北京#!/bin/bash
北京for i in 1 2 3 4 5 6 7 8 9 10
do
/usr/bin/php -q /var/www/html/test.php &
done
北京注意到在请求php代码的那行有一个&符号吗,这个是关键,不加的话是不能进行多线程的,&表示讲服务推送到后台执行,因此,在 shell的每次的循环中不必等php的代码全部执行完在请求下一个文件,而是同时进行的,这样就实现了多线程,下面运行下shell看下效果,这里你将 看到10个test.php进程再跑,再利用linux的定时器,定时请求这个shell,在处理一些需要多线程的任务,例如,批量下载时,非常好用!
北京php中用WEB服务器实现多线程
假设我们现在运行的是a.php这个文件. 但是我在程序中又请求WEB服务器运行另一个b.php,那么这两个文件将是同时执行的.(PS: 一个链接请求发送之后, WEB服务器就会执行它, 而不管客户端是否已经退出)
如何将我的php脚本以守护进程的方式一直运行?写好php脚本。建议定期检测内存占用,核心逻辑就不写了。这个跟业务有关。 if(memory_get_usage()>100*1024*1024){ exit(0);//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端 } 假设该php文件的路径为/root/run.php
北京 打开终端 setsid php /root/
run.php
北京 > /dev/null & 编辑进程监控脚本,当进程不存在时,自动重启 /root/
monitor.sh
#!/bin/bash alive=`ps aux|grep root\/run|grep -v grep|wc -l` if [ $alive -eq 0] then php /root/
北京run.php
> /dev/null & fi 添加计划任务(每分钟检测一次) crontab -e * * * * * /root/
北京monitor.sh
北京 > /dev/null &
北京运行方式怎么写?
第一行"#!/bin/bash"
北京在 Linux 中,以"#"开头的一般都是注释,不过这句话是例外的。这句话的作用是标称我以下写的脚本使用的是 Bash 语法,只要写的是基于 Bash 的 Shell 脚本都应该这样开头。这就像在 HTML 语言中嵌入 PHP 程序时,PHP 程序必须用<??>包含起来。不过,有一些比较喜欢钻研的人也会有疑问,他们在写 Shell 脚本时,不加"#!/bin/bash"这句话,Shell 脚本也可以正确执行。那是因为我们是在默认 Shell 就是 Bash 的 Linux 中编写的脚本,而且脚本是纯 Bash 脚本才能够正确执行。如果把脚本放在默认环境不是 Bash 的环境中运行,又或者编写脚本的不是纯 Bash 语言,而是嵌入了其他语言(如 Tcl 语言),那么这个脚本就不能 正确执行了。所以,大家记住我们的 Shell 脚本都必须以"#!/bin/bash"开头。
第二行:注释
北京在 Shell 脚本中,除"#!/bin/bash"这行外,其他行只要以"#"开头的都是注释。第二行就是我们这个脚本的注释,建议大家在写程序时加入清晰而详尽的注释,这些都是建立良好编程规范时应该注意的问题。
北京到此,以上就是小编对于“bash运行php”的问题就介绍到这了,希望介绍关于“bash运行php”的【3】点解答对大家有用。