分页: 1 / 1

写shell脚本调用php文件

发表于 : 2012-02-23 14:48
djl8877
我在cron中设定了定时运行某一个shell脚本。问题就是怎么在shell脚本上调用某一个php文件呢??不过要求又高了一点,就是用shell脚本又是到了运行的时候了,就去判断上一次运行的php文件的进程是否还存在??上一次运行php文件结束了的话就开始这一次的运行,那就是上一次运行的进程已经结束了,如果还没有结束的话,这一次的运行任务就不再运行了。请问这个shell脚本要如何去写呢??

Re: 写shell脚本调用php文件

发表于 : 2012-02-24 20:19
lotutu
互斥的问题用上锁来解决会比较容易想
至于怎么运行php脚本,这个命令行上怎么运行脚本中就怎么写呗

Re: 写shell脚本调用php文件

发表于 : 2012-02-25 10:55
djl8877
老兄,能详细点吗??我是新手,多关照一下吧

Re: 写shell脚本调用php文件

发表于 : 2012-02-25 11:07
lotutu
假如你的php脚本是 a.php 吧,那么你给它加上可执行权限后直接在shell 脚本里面写上 /path/to/a.php 就可以执行它,或者 写 php /path/to/a.php

互斥访问在你的脚本是用来修改文件信息或者别的什么信息的时候比较有用。假设你的脚本是用来修改文件 foo , 那么你可以通过给这个文件上锁的
方式来避免上一次任务没有结束的时候下一次任务冒然插入进来修改。这样就达到了上一次的任务没有结束的时候这一次的任务无效的效果。

加锁的方法我不怎么了解,不过也有替代方法,比如这样
开始时 -》 检测bar文件是否存在,如果存在退出。否则继续
创建 bar 文件。
执行要执行的操作
删除 bar文件

Re: 写shell脚本调用php文件

发表于 : 2012-04-12 9:03
djl8877
我是这样做的
#!/bin/sh
count=`ps -fe |grep "xxxxx.php" | grep -v "grep" | wc -l`
echo $count
if [ $count -eq 0 ]
then
/usr/bin/php /path/xxxx.php
else
exit
if
用ps命令判断那个php进程是否还存在,存在就不运行

Re: 写shell脚本调用php文件

发表于 : 2012-04-12 15:49
lotutu
嗯,那样也不错

Re: 写shell脚本调用php文件

发表于 : 2012-04-12 15:54
eexpress
到/tmp下touch一个文件就是。那就是锁了嘛。

Re: 写shell脚本调用php文件

发表于 : 2012-04-12 22:51
lookme9999
:em03 :em03 学习中……