Skip to content

Commit bb950e9

Browse files
authored
fix(server): drain stdin when not interactive (#20837)
1 parent 788a183 commit bb950e9

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

packages/vite/src/node/utils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,12 +1643,17 @@ const parentSigtermCallback: SigtermCallback = async (signal, exitCode) => {
16431643
await Promise.all([...sigtermCallbacks].map((cb) => cb(signal, exitCode)))
16441644
}
16451645

1646+
const drain = () => {}
1647+
16461648
export const setupSIGTERMListener = (
16471649
callback: (signal?: 'SIGTERM', exitCode?: number) => Promise<void>,
16481650
): void => {
16491651
if (sigtermCallbacks.size === 0) {
16501652
process.once('SIGTERM', parentSigtermCallback)
16511653
if (process.env.CI !== 'true') {
1654+
if (!process.stdin.isTTY) {
1655+
process.stdin.on('data', drain)
1656+
}
16521657
process.stdin.on('end', parentSigtermCallback)
16531658
}
16541659
}
@@ -1662,6 +1667,7 @@ export const teardownSIGTERMListener = (
16621667
if (sigtermCallbacks.size === 0) {
16631668
process.off('SIGTERM', parentSigtermCallback)
16641669
if (process.env.CI !== 'true') {
1670+
process.stdin.off('data', drain)
16651671
process.stdin.off('end', parentSigtermCallback)
16661672
}
16671673
}

0 commit comments

Comments
 (0)