Files
auto-boot-ollama-host/scripts/ollama_manager.lua
Bastian (BaM) 8cb6d55782 Refactor to use LuaJIT and improve performance
Integrate LuaJIT as an optional runtime for better performance, with a fallback to standard Lua 5.4. Update Dockerfile to install LuaJIT and create a wrapper script for execution. Enhance network module with socket fallback support and update README to reflect these changes and configuration options.
2025-09-15 08:44:19 +02:00

50 lines
2.0 KiB
Lua

-- Ollama service management module for auto-boot-ollama-host
-- Handles starting, stopping, and monitoring Ollama service
local utils = require("utils")
local network = require("network")
local ssh = require("ssh")
local ollama_manager = {}
-- Start Ollama service via SSH
function ollama_manager.start_service(config)
utils.log("SSH is reachable. Starting Ollama service...")
utils.sleep(10)
-- Start ollama service using nssm
ssh.execute("nssm start ollama", config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- Alternative systemctl commands (commented out)
-- ssh.execute('wsl.exe -d Debian -- sudo systemctl enable ollama', config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- ssh.execute('wsl.exe -d Debian -- sudo systemctl start ollama', config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- Wait for service to become available
if network.port_is_up(config.OLLAMA_HOST, config.OLLAMA_PORT, 90) then
utils.log("Ollama service is reachable again.")
utils.sleep(30)
return true
else
utils.log("Timeout waiting for Ollama service to come up after SSH command.")
return false
end
end
-- Stop Ollama service and shutdown host
function ollama_manager.stop_service_and_shutdown(config)
utils.log("Shutting down Ollama host to save power...")
-- Stop ollama service using nssm
ssh.execute("nssm stop ollama", config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- Alternative systemctl commands (commented out)
-- ssh.execute('wsl.exe -d Debian -- sudo systemctl disable ollama', config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- ssh.execute('wsl.exe -d Debian -- sudo systemctl stop ollama', config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
-- Shutdown the host
ssh.execute("shutdown.exe /s /t 0", config.SSH_USER, config.OLLAMA_HOST, config.SSH_PORT, config.SSH_IDENTITY_FILE)
utils.sleep(5)
end
return ollama_manager