PHP функция exe c () прекратить загрузку сайта - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю панель управления для запуска программ на моем компьютере в VueJS, и я использовал следующий код для запуска этой программы:

    public function start() {

    if(session()->get('serverRunning') !== 'running') {
        session()->put('serverRunning', 'running');
        exec('cmd.exe /c start C:\Users\jensm\websites\MinecraftServer\public\server\run.bat');
        return (['message' => 'Running']);
    } else {
        exec('cmd.exe /c stop C:\Users\jensm\websites\MinecraftServer\public\server\run.bat');
        return (['message' => 'Offline']);
    }
}

Но после этого мой сайт продолжает загружаться и не будет вернуть что-нибудь. Только если я закрою программу командной строки с windows, она выдаст мне сообщение. Но я хочу оставить командную строку открытой.

1 Ответ

0 голосов
/ 02 апреля 2020

Как сказано в комментариях,

Вы выполняете exec, который запускает командную строку, и оттуда вы затем запускаете дополнительный процесс для выполнения файла bat.

Решением этого является простое использование system("cmd /c C:[path to file]");. Это, по сути, запускает файл bat через system без необходимости открывать командную строку.

Ознакомьтесь с документацией для System . Вам не нужно останавливать выполнение программы (согласно вашему дальнейшему вопросу в комментарии)

...