Merge pull request #975 from janhq/fix/kill_nitro

feat: Kill nitro process with API - nitro 0.1.27
This commit is contained in:
hiro 2023-12-13 17:17:52 +07:00 committed by GitHub
commit b3405a6fdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 10 deletions

View File

@ -1 +1 @@
0.1.26
0.1.27

View File

@ -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