Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

vp run forwards no signal to its task, so stopping vp alone orphans the task

Aberta
#3,090 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
30/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
cli

Direção de pesquisa

Start with the comment at crates/vt/src/session/mod.rs:382-388, which says child tasks receive signals from the terminal driver, and trace how vp run spawns tasks and handles signals in the local CLI and the global vp wrapper. Reproduce by running vp run dev and sending SIGTERM to the vp pid alone. The issue is open on a choice between forwarding signals and documenting process-group signalling, so confirm the maintainers' preferred direction before writing code.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Description

vp run <script> forwards no signal to the task it runs. A SIGINT or SIGTERM sent to the vp process alone ends vp, and the script's process keeps running, reparented to init or the user manager. A Ctrl-C in a terminal works only because the terminal sends it to the whole process group. Tools that stop a job by signalling the process they started leave the task running. That includes kill <pid> from a script, a supervisor, or an editor or agent harness that started vp run dev as a background command.

Tested on vite-plus 1.2.0 (global vp and the local CLI), on Linux:

Signal sent to Result
global vp, SIGINT or SIGTERM vp exits; the task keeps running
local CLI, SIGTERM the CLI exits; the task is orphaned
local CLI, SIGINT ignored
the whole process group everything exits

This looks deliberate. vite-task at 9ba4cc93, crates/vt/src/session/mod.rs:382-388, says "Child tasks receive the signal directly from the terminal driver". The docs don't mention it, though.

Suggested solution

Forward SIGINT, SIGTERM and SIGHUP from vp to each running task, then wait for the tasks to exit. This is what npm run does (@npmcli/run-script lib/signal-manager.js), and what Turborepo (turborepo-signals) and concurrently (kill-on-signal.ts) do.

The global vp would also need to pass the signal on to the local CLI it starts.

Alternative

Document that vp run must be stopped by signalling its process group, so that harnesses and scripts can do that.

Additional context

We hit this with a long-running dev script that supervises several servers. Stopping vp alone left all of them running and holding their ports. We now tell agents to signal the script's own process instead.

Validations
  • Read the Contributing Guidelines.
  • Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
  • Check that there isn't already an issue requesting the same feature. I searched vite-plus and vite-task for signal, SIGINT, SIGTERM, kill, orphan and process group.
Linguagem predominante
Rust
Estrelas
6.3k
Forks
283
Merge médio
1d 12h
PRs com merge (30d)
205

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-plus

Todas as issues de voidzero-dev/vite-plus

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.