Files
hailort/hailort/hailort_service/hailort_service.cpp
HailoRT-Automation d61a3bc83f v4.10.0
v4.10.0
2022-09-28 22:49:02 +03:00

60 lines
1.9 KiB
C++

/**
* Copyright (c) 2020-2022 Hailo Technologies Ltd. All rights reserved.
* Distributed under the MIT license (https://opensource.org/licenses/MIT)
*
* @file hailort_service.cpp
* @brief main for hailort service
* TODO: move to user guide (HRT-7559)
* * To run as without daemonize the executable:
* 1) Compile with `./build.sh`
* 2) Run `./bin/linux.x86_64.debug/hailort_service standalone`
*
* * To run as daemon service please follow the steps:
* 1) Install the HailoRT:
* cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release -DHAILO_BUILD_SERVICE=1 && sudo cmake --build build --target install
*
* 2) Reload systemd manager configuration:
* sudo systemctl daemon-reload
*
* 3) Enable and start the service
* sudo systemctl enable --now hailort.service
*
* 4) Stop service
* sudo systemctl stop hailort.service
*/
#include "hailort_rpc_service.hpp"
#include "rpc/rpc_definitions.hpp"
#include "common/utils.hpp"
#include "hailo/hailort_common.hpp"
#include <syslog.h>
#include <sys/stat.h>
void RunService() {
std::string server_address(hailort::HAILO_DEFAULT_UDS_ADDR);
hailort::HailoRtRpcService service;
grpc::ServerBuilder builder;
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
builder.SetMaxReceiveMessageSize(-1);
builder.RegisterService(&service);
std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
chmod(hailort::HAILO_DEFAULT_SERVICE_ADDR.c_str(), S_IROTH | S_IWOTH | S_IRUSR | S_IWUSR);
server->Wait();
}
int main(int argc, char *argv[])
{
bool is_standalone = ((1 < argc) && (strcmp("standalone", argv[1]) == 0));
if (!is_standalone) {
int ret = daemon(0,0);
if (ret < 0) {
syslog(LOG_ERR, "Failed to create daemon with errno %i", errno);
exit(EXIT_FAILURE);
}
}
RunService();
return 0;
}