Процесс PHP ssh2_scp_send () не завершится, когда произойдет ошибка загрузки - PullRequest
0 голосов
/ 05 июня 2018

Вот фрагмент кода, использующий PHP-функцию ssh2_scp_send(), пытающуюся загрузить файл на ssh-сервер:

<?php

$conn = ssh2_connect('192.168.86.241', 22);
ssh2_auth_password ($conn, $username, $password);
if (ssh2_scp_send($this->connection, $local_file, $remote_file)) {
    echo 'error';
} else {
    echo 'done';
}

Моя проблема в том, что при отправке большого файла или при намеренном уничтожениисервер ssh, то процесс этого сценария не будет завершен автоматически, и в конечном итоге съедает все ресурсы клиентских машин.

A strace в linux или dtruss в mac показывают, что процесс продолжает вызывать recvfrom(), вот скриншоты результата команды:

enter image description here enter image description here

...