Merge pull request #975 from janhq/fix/kill_nitro
feat: Kill nitro process with API - nitro 0.1.27
This commit is contained in:
commit
b3405a6fdc
@ -1 +1 @@
|
||||
0.1.26
|
||||
0.1.27
|
||||
|
||||
@ -15,6 +15,7 @@ const NITRO_HTTP_SERVER_URL = `http://${LOCAL_HOST}:${PORT}`;
|
||||
const NITRO_HTTP_LOAD_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/loadmodel`;
|
||||
const NITRO_HTTP_UNLOAD_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/unloadModel`;
|
||||
const NITRO_HTTP_VALIDATE_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/modelstatus`;
|
||||
const NITRO_HTTP_KILL_URL = `${NITRO_HTTP_SERVER_URL}/processmanager/destroy`;
|
||||
|
||||
// The subprocess instance for Nitro
|
||||
let subprocess = null;
|
||||
@ -187,13 +188,15 @@ async function validateModelStatus(): Promise<ModelOperationResponse> {
|
||||
* @returns A Promise that resolves when the subprocess is terminated successfully, or rejects with an error message if the subprocess fails to terminate.
|
||||
*/
|
||||
function killSubprocess(): Promise<void> {
|
||||
if (subprocess) {
|
||||
subprocess.kill();
|
||||
fetch(NITRO_HTTP_KILL_URL, {
|
||||
method: "DELETE",
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
subprocess?.kill();
|
||||
kill(PORT, "tcp").then(console.log).catch(console.log);
|
||||
subprocess = null;
|
||||
console.debug("Subprocess terminated.");
|
||||
} else {
|
||||
return kill(PORT, "tcp").then(console.log).catch(console.log);
|
||||
}
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,9 +210,6 @@ async function checkAndUnloadNitro() {
|
||||
// Attempt to unload model
|
||||
return fetch(NITRO_HTTP_UNLOAD_MODEL_URL, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
// Fallback to kill the port
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user