<?php
/**
 * 项目默认类，此类在素玄系统内每个模块都有，供全局管理系统间握手使用
 *
 * ============================================================================
 * 版权所有 2017北京素玄科技，并保留所有权利。
 *
 * 网站地址: http://www.suxuantech.com
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！未经允许的情况下，您不能对本系统代码做任何修改 .
 * 不允许对程序代码以任何形式任何目的的再发布。
 * 如有修改需求，请联系素玄科技有限公司：contact@suxuantech.cn
 * ============================================================================
 * $Author: wzy<wangzhenya@suxuantech.cn> 2017-10-27 $
 */
namespace app\crm\controller;
use think\Cache;
use app\index\controller\Base;
use think\Exception;
use think\Controller;
class CheckProcess extends Base{
//    public function log($value='')
//    {
//        file_put_contents(ROOT_PATH.'/runtime/log/process.log', $value.PHP_EOL, FILE_APPEND);
//    }
    //计划任务定时检测进程是否存在，不存在则启动，以root用户运行
    //pro:fp dfp import data
    //command:start stop restart
    public function checkPro()
    {
        $data = input();
        $pro = $data['pro'] ? $data['pro'] : '';
        $command = $data['command'] ? $data['command'] : 'start';
        $status = $data['status'] ? $data['status'] : 0;

        $this->log(__LINE__.'----进程参数-->'.json_encode($data));
            $arr = ['runfp','rundata','runimport','rundfp'];
            foreach($arr as $k=>$v){
                $cmd = 'ps axu|grep '.$v." &&  echo 'success';";
                $ret = shell_exec("$cmd");
                $this->log(__LINE__.'-无参数---执行查询 '.$v.' 命令返回值-->'.json_encode($ret));
                $ret = rtrim($ret, "\r\n");

                if($ret == 'success') {
                    $start_master_cmd = "./server.sh ".$v." ".$command." &&  echo 'success';";
                    $ret = shell_exec("$start_master_cmd");
                    $ret = rtrim($ret, "\r\n");
                    if($ret == 'success'){
                        $arr = array(
                            'process'=> $v,
                            'sign'=> $command,
                            'status'=> 1
                        );
                        $this->log(__LINE__.'--无参数--执行 '.$start_master_cmd.' 命令成功-->'.json_encode($ret));
                        cache($v,json_encode($arr));
                    }else{
                        $this->log(__LINE__.'--无参数--执行 '.$start_master_cmd.' 命令失败-->'.json_encode($ret));
                    }
                }else{
                    $arr = array(
                        'sign'=> $command,
                        'status'=> 0
                    );
                    $this->log(__LINE__.'--无参数--执行 '.$cmd.' 命令失败-->'.json_encode($ret));
                    cache($v,json_encode($arr));
                }
            }

        return json_encode($arr);
    }
}