判断脚本是否在运行

 /**
     * 判断脚本是否在运行
     * @param $script_name
     * @return array
     */
    public function isRunning($script_name)
    {
        try {
            exec('sudo ps -aux | grep ' . $script_name, $output, $return_var);
            if ($return_var == 0) {
                foreach ($output as $key => $row) {
                    $temp_arr = [];
                    foreach (explode(' ', $row) as $column) {
                        if (!empty($column)) {
                            $temp_arr[] = $column;
                        }
                    }
                    if (in_array($script_name, $temp_arr)) {
                        return ['code' => StatusCode::SUCCESS, 'data' => [], 'msg' => '脚本已经在执行'];
                    } else {
                        return ['code' => StatusCode::FAILED, 'data' => [], 'msg' => '脚本没有在执行'];
                    }
                }
            }
            return ['code' => StatusCode::INNER_ERROR, 'data' => [], 'msg' => 'exec执行脚本失败, 返回状态return_var: ' . $return_var . '; $output:' . json_encode($output)];
        } catch (\Exception $e) {
            return ['code' => StatusCode::INNER_ERROR, 'data' => [], 'msg' => '内部错误,请联系管理员,' . $e->getMessage()];
        }
    }

 

posted @ 2020-07-23 13:16  xiondun  阅读(683)  评论(0编辑  收藏  举报