bad interpreter: Text file busy 在线等

jlzan1314 2010-05-26 02:46:15
zai centos 下用php写命令行,出现这个东西.是怎么回事?
...全文
1220 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlzan1314 2010-05-27
  • 打赏
  • 举报
回复
晕... 这个完全手写的,
starting.txt是锁文件.这个lock.txt文件,控制进程暂停的.在stop()里面有实现啊.
xuzuning 2010-05-27
  • 打赏
  • 举报
回复
你这个代码是抄来的吧?

$lock="lock.txt";
本意是做文件锁,但代码中并没有体现
jlzan1314 2010-05-27
  • 打赏
  • 举报
回复
搜了好多,没得到答案

是 不是这个问题
启动一个后台进程的问题.
exec(__FILE__." start back >>$log 2>&1 &");//在后台运行
ruanchao 2010-05-26
  • 打赏
  • 举报
回复
关注中!
jlzan1314 2010-05-26
  • 打赏
  • 举报
回复
./file_name start 会出现这个错误.
jlzan1314 2010-05-26
  • 打赏
  • 举报
回复
并不是每次都会出现错误.偶尔.
jlzan1314 2010-05-26
  • 打赏
  • 举报
回复
#!/usr/local/bin/php
<?php
set_time_limit(0);
$acts=array('start','stop','status','prepare','help');

$config=array(
"dbhost"=>"localhost",
"dbuser"=>"xxx",
"dbpw"=>'xxx',
"dbname"=>"po",
"charset"=>"utf8",
);
$db=null;


$lock="lock.txt";

if(in_array($argv[1],$acts,true) ){
$argv[1]();
}else{
help();
}

function start(){
global $lock,$argc,$argv,$db;
if($argc===2){
if(status(true)=="starting\n"){
echo "program is also starting";
}else{
@unlink($lock);
$date=date("Y-m-d");
$log="log/$date.txt";
exec(__FILE__." start back >>$log 2>&1 &");//在后台运行
}
}elseif($argc===3&&$argv[2]==='back'){
$str="program is also starting\n";
if($fh=@fopen("starting.txt",'w+')){
if(flock($fh,LOCK_EX + LOCK_NB)){//只准运行一个实例
$db=get_db();
$str='';
while(1){
if(is_file($lock)){
break;
}
sendmail();
}
}
fclose($fh);
}
if($str){
echo $str;//报错
}
}else{
echo "starting error\n";
}
}

function sendmail(){
$db=get_db();
echo "$i\n";
usleep(1000000*1);//间隔0.2秒发一封,一秒发5封
}

function get_email_doamins($limit){
$db=get_db();
}

function prepare(){
$db=get_db();
}

/**
* 显示信息
*
*/
function status($r=false){
$str="stopping\n";
if($fh=@fopen("starting.txt",'w+')){
if(!flock($fh,LOCK_EX + LOCK_NB)){
$str= "starting\n";
}
fclose($fh);
}
if($r){
return $str;
}
echo $str;
}

function stop(){
global $lock;
file_put_contents($lock,'');
if(is_file($lock)){
echo "stoping\n";
}else{
echo "Error:stoping";
}
}

function help(){
global $acts;
foreach($acts as $act){
echo __FILE__." $act\n";
}
}

function get_db(){
global $config;
static $db=null;
if(is_null($db)){
$db=new DB($config);
}
return $db;
}
?>
xuzuning 2010-05-26
  • 打赏
  • 举报
回复
关闭打开的文件

你应该贴出你的代码,这样你才有可能获得有效的帮助
jlzan1314 2010-05-26
  • 打赏
  • 举报
回复
有解决方案嘛?
CodeBus 2010-05-26
  • 打赏
  • 举报
回复
大致意思是说你操作的文件比较忙,可能别的进程在用。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧