P4: Production hardening — syslog, shutdown fix, output IPC
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# OPLabs Mixer Daemon — build, install, manage
|
||||
#
|
||||
# Targets:
|
||||
# build — Build the daemon binary
|
||||
# test — Run core tests
|
||||
# install — Install systemd service
|
||||
# uninstall — Remove systemd service
|
||||
# restart — Restart the systemd service
|
||||
# status — Show service status
|
||||
# start — Start the service
|
||||
# stop — Stop the service
|
||||
# logs — Tail log output
|
||||
# clean — Clean build artifacts
|
||||
|
||||
BUILD_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))build
|
||||
SERVICE := oplabs-mixer-daemon.service
|
||||
SERVICE_PATH := /etc/systemd/system/$(SERVICE)
|
||||
|
||||
.PHONY: build test install uninstall restart status start stop logs clean
|
||||
|
||||
# Build the daemon
|
||||
build:
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
@cd $(BUILD_DIR) && cmake .. && make -j$$(nproc)
|
||||
@echo "=== Build complete: $(BUILD_DIR)/mixer-daemon ==="
|
||||
|
||||
# Run core tests
|
||||
test:
|
||||
@cd $(BUILD_DIR) && ctest --output-on-failure
|
||||
|
||||
# Install systemd service and start it
|
||||
install: $(BUILD_DIR)/mixer-daemon
|
||||
sudo cp $(SERVICE) $(SERVICE_PATH)
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable $(SERVICE)
|
||||
sudo systemctl restart $(SERVICE)
|
||||
@echo "=== Service status ==="
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
# Remove systemd service
|
||||
uninstall:
|
||||
sudo systemctl stop $(SERVICE) || true
|
||||
sudo systemctl disable $(SERVICE) || true
|
||||
sudo rm -f $(SERVICE_PATH)
|
||||
sudo systemctl daemon-reload
|
||||
@echo "=== Uninstalled ==="
|
||||
|
||||
restart:
|
||||
sudo systemctl restart $(SERVICE)
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
status:
|
||||
sudo systemctl status --no-pager $(SERVICE)
|
||||
|
||||
start:
|
||||
sudo systemctl start $(SERVICE)
|
||||
|
||||
stop:
|
||||
sudo systemctl stop $(SERVICE)
|
||||
|
||||
logs:
|
||||
sudo journalctl -u $(SERVICE) -n 100 -f
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
@echo "=== Cleaned ==="
|
||||
Reference in New Issue
Block a user