Skip to content

Commit 706975e

Browse files
committed
Fix exec calls
1 parent b5a0dac commit 706975e

File tree

1 file changed

+29
-20
lines changed

1 file changed

+29
-20
lines changed

evals/apps/web/src/lib/server/processes.ts

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,33 @@
33
import psTree from "ps-tree"
44
import { exec } from "child_process"
55

6-
export const getProcessList = async (pid: number) => {
7-
const promise = new Promise<string>((resolve, reject) => {
8-
exec(`ps -p ${pid} -o pid=`, (err, stdout, stderr) => {
9-
if (err) {
10-
reject(stderr)
6+
const asyncExec = (command: string): Promise<{ stdout: string; stderr: string }> =>
7+
new Promise((resolve, reject) => {
8+
exec(command, (error, stdout, stderr) => {
9+
if (error) {
10+
reject(error)
11+
} else {
12+
resolve({ stdout, stderr })
1113
}
12-
13-
resolve(stdout)
1414
})
1515
})
1616

17+
export const getProcessList = async (pid: number) => {
1718
try {
18-
await promise
19-
} catch (_) {
20-
return null
21-
}
19+
await asyncExec(`ps -p ${pid} -o pid=`)
2220

23-
return new Promise<number[]>((resolve, reject) => {
24-
psTree(pid, (err, children) => {
25-
if (err) {
26-
reject(err)
27-
}
21+
return new Promise<number[]>((resolve, reject) => {
22+
psTree(pid, (err, children) => {
23+
if (err) {
24+
reject(err)
25+
}
2826

29-
resolve(children.map((p) => parseInt(p.PID)))
27+
resolve(children.map((p) => parseInt(p.PID)))
28+
})
3029
})
31-
})
30+
} catch (_) {
31+
return null
32+
}
3233
}
3334

3435
export const killProcessTree = async (pid: number) => {
@@ -39,8 +40,16 @@ export const killProcessTree = async (pid: number) => {
3940
}
4041

4142
if (descendants.length > 0) {
42-
await exec(`kill -9 ${descendants.join(" ")}`)
43+
try {
44+
await asyncExec(`kill -9 ${descendants.join(" ")}`)
45+
} catch (error) {
46+
console.error("Error killing descendant processes:", error)
47+
}
4348
}
4449

45-
await exec(`kill -9 ${pid}`)
50+
try {
51+
await asyncExec(`kill -9 ${pid}`)
52+
} catch (error) {
53+
console.error("Error killing main process:", error)
54+
}
4655
}

0 commit comments

Comments
 (0)