Process::start with TimeoutCancellation stops running process on Windows
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- php
- Ambito
- operating-systems
Direzione di ricerca
Inizia con lo script di test Process::start fornito ed eseguilo sia su Windows sia su Linux per riprodurre il diverso comportamento dell'annullamento. Esamina la gestione dell'annullamento di Process::start, quindi stabilisci se l'annullamento debba interrompere solo l'avvio oppure anche il processo; il lavoro è completato quando il comportamento previsto è coerente tra le piattaforme e il parametro di annullamento è documentato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm not sure if this is a bug or intentional. Could you help me figure it out please?
The cancellation parameter isn't described in PHPDOC, but I assume it's intended to cancel the startup procedure, not the process itself.
The behavior is different on Linux and Windows. Which is confusing.
Here is a test script to demonstrate the issue.
<?php
include_once __DIR__.'/vendor/autoload.php';
use Amp\Process\Process;
use Amp\TimeoutCancellation;
use function Amp\delay;
$cmd = PHP_OS_FAMILY === 'Windows' ? 'ping -n 100 127.0.0.1' : 'sleep 100';
echo PHP_OS_FAMILY.', php '.PHP_VERSION."\n";
echo $cmd."\n";
$process = Process::start($cmd, cancellation: new TimeoutCancellation(3, "Startup timeout"));
echo $process->isRunning() ? "running\n" : "stopped\n";
foreach (range(1, 5) as $x) {
delay(1);
echo $process->isRunning() ? "running\n" : "stopped\n";
}
$process->kill();
Windows
Windows, php 8.3.14
ping -n 100 127.0.0.1
running
running
running
stopped
stopped
stopped
Linux
Linux, php 8.3.27
sleep 100
running
running
running
running
running
running
- Lingua principale
- PHP
- Stelle
- 260
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di amphp/process
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
More pipes?Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di amphp/process
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Automattic/blocks-engine#2803 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hestiacp/hestiacp#5798 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
woocommerce/woocommerce-google-analytics-integration#699 ·
I maintainer di solito rispondono entro 1 giorno
-
Sidebar highlights two items when plugin routes share a prefix (/plugin/foo and /plugin/foo-bar)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
getgrav/grav-plugin-admin2#195 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
I maintainer di solito rispondono entro 1 giorno