forked from heckeralt/FreeVM-Server
Update start-linux.js
This commit is contained in:
parent
6271ac2ba8
commit
cf0be8da47
|
@ -4,7 +4,31 @@ let makedisk = "qemu-img create vm.img 30G" // make a 30GB disk
|
||||||
let qemucmd = "qemu-system-x86_64 -vnc :1 -m 1G -hda vm.img -accel kvm"
|
let qemucmd = "qemu-system-x86_64 -vnc :1 -m 1G -hda vm.img -accel kvm"
|
||||||
child.execSync(makedisk)
|
child.execSync(makedisk)
|
||||||
child.execSync(qemucmd)
|
child.execSync(qemucmd)
|
||||||
http.createServer(function (req, res) {
|
const server = http.createServer((req, res) => {
|
||||||
res.write('Server running at IP 127.0.0.1:5901 (VNC)'); //write a response to the client
|
// Check if the request is a POST to /stop
|
||||||
res.end(); //end the response
|
if (req.method === 'POST' && req.url === '/stop') {
|
||||||
}).listen(8080); //the server object listens on port 8080
|
// Execute the pkill command to stop Node.js processes
|
||||||
|
exec('pkill qemu*', (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
console.error(`Error executing command: ${error.message}`);
|
||||||
|
res.writeHead(500);
|
||||||
|
res.end(JSON.stringify({ message: 'Failed to stop the server' }));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('QEMU processes terminated');
|
||||||
|
res.writeHead(200);
|
||||||
|
res.end(JSON.stringify({ message: 'Server is stopping' }));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Handle 404 for other routes
|
||||||
|
res.writeHead(404);
|
||||||
|
res.end(JSON.stringify({ message: 'Not Found' }));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Start the server on port 3000
|
||||||
|
const PORT = 8080;
|
||||||
|
server.listen(PORT, () => {
|
||||||
|
console.log(`Server is running on http://localhost:${PORT}`);
|
||||||
|
console.log("QEMU and FreeVM are running. VNC into it using 127.0.0.1 to VNC into it and go to localhost:8080/stop to stop the VM.")
|
||||||
|
});
|
Loading…
Reference in New Issue