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_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_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_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 // The subprocess instance for Nitro
let subprocess = null; 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. * @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> { function killSubprocess(): Promise<void> {
if (subprocess) { fetch(NITRO_HTTP_KILL_URL, {
subprocess.kill(); method: "DELETE",
}).catch((err) => {
console.error(err);
subprocess?.kill();
kill(PORT, "tcp").then(console.log).catch(console.log);
subprocess = null; subprocess = null;
console.debug("Subprocess terminated."); });
} else { return
return kill(PORT, "tcp").then(console.log).catch(console.log);
}
} }
/** /**
@ -207,9 +210,6 @@ async function checkAndUnloadNitro() {
// Attempt to unload model // Attempt to unload model
return fetch(NITRO_HTTP_UNLOAD_MODEL_URL, { return fetch(NITRO_HTTP_UNLOAD_MODEL_URL, {
method: "GET", method: "GET",
headers: {
"Content-Type": "application/json",
},
}).catch((err) => { }).catch((err) => {
console.error(err); console.error(err);
// Fallback to kill the port // Fallback to kill the port