Get Server::Starter listeners for rust application
This crate providers start_server / start_server listeners for rust server applications.
use actix_web::{HttpServer, App};
use server_starter_listener::{listeners, ServerStarterListener};
let listener = listeners().unwrap().pop().unwrap();
match listener {
ServerStarterListener::Tcp(listener) => {
HttpServer::new(|| App::new()).listen(listener).unwrap().run().unwrap();
}
_ => unimplemented!(),
}
You need to start application using start_server / start_server.
> start_server --port=80 -- your_server_binary
Now you can do hot-deploy by send SIGHUP
to start_server
process.
start_server
share file descriptor to new process and send SIGTERM
to old process.
Some additional info here
License: MIT OR Apache-2.0