在linux下 利用linux的shell命令,将daemon.php设为守护进程,后台一直运行;deamon.php在初始化时,需要读取配置数据库。
   而在前端,管理员可以对配置库进行修改,删除或者添加。
   请问该如何设置,可以在对配置库修改之后,守护进程可以对其重新读取?
   或者说,前端修改过数据库后,可以触发重启守护进程?

解决方案 »

  1.   

    修改数据库配置后,可以用PHP中的system函数重新调用linux的shell命令来将daemon.php设为守护进程
      

  2.   

    呵呵  不需要人工重启  利用shell自动重启守护进程 
      

  3.   

    deamon.php既然是守护进程,那你更新后,传个参数过去, 让deamon自动重读数据库就行了, 
    或者说把deamon.php里读数据的操作封闭起来,方便以后根据传值重新调用.
      

  4.   

    deamon.php 是读取数据库的记录,然后根据记录的条数,产生子进程。
                   那如果数据库中某条记录已经删除了 怎么让这个子进程自动终止呢;
                   如果数据库中添加了某条记录,如何让这个守护进程自动再起一个子进程呢
      

  5.   

    自动终止可以实现了 利用posix_kill($cid,SIGTERM);
    添加呢
      

  6.   

    新鲜了, php脚本,还守护进程呢。php 脚本是可以一直运行,只需要通过设置 set_time_limit(0) 就好了。至于你说的修改配置生效,不知道你修改的是php的配置呢?还是 你的应用的配置。如果是应用的配置,可以定期去查询当前的配置,如果有修改,然后就加载新的配置。
      

  7.   

    set_time_limit(0)不是用来给你一直运行php脚本的,它是用来限制脚本的运行时间的,相当于timeout的概念。
    用守护进程来运行php脚本是可以的,可以理解为shell后台一直执行php的命令行,它前提是你没有限制php脚本的运行时间。
      

  8.   

    问题已经解决,可以让进程自动的去查看修改的flag状态标识,若为删除,则kill掉该进程,若为更新,则加载更新后的配置;若为添加,则递归产生一个和自己一模一样的进程。