From 4a184c68f49d56a72c6556e5fc114922dbfaf5e2 Mon Sep 17 00:00:00 2001
From: "leon.bohnwagner" <leon.bohnwagner@informatik.hs-fulda.de>
Date: Fri, 14 Feb 2025 01:40:49 +0100
Subject: [PATCH] feat: add systemd services and client start logging

---
 clients/cpu_temp/src/cpu_temp.c  |  5 ++++-
 clients/dummy/src/dummy.c        |  5 ++++-
 common/src/userspace_comm.c      |  6 +++---
 systemd/clients/cpu-temp.service | 10 ++++++++++
 systemd/clients/dummy.service    | 10 ++++++++++
 systemd/daemon.service           | 10 ++++++++++
 6 files changed, 41 insertions(+), 5 deletions(-)
 create mode 100644 systemd/clients/cpu-temp.service
 create mode 100644 systemd/clients/dummy.service
 create mode 100644 systemd/daemon.service

diff --git a/clients/cpu_temp/src/cpu_temp.c b/clients/cpu_temp/src/cpu_temp.c
index a935002..10d8c20 100644
--- a/clients/cpu_temp/src/cpu_temp.c
+++ b/clients/cpu_temp/src/cpu_temp.c
@@ -29,8 +29,11 @@ int main(int argc, char *argv[]) {
   double cpu_temp;
   char buffer[6];
 
+  int id = atoi(argv[1]);
   int sleep_ms = atoi(argv[2]);
 
+  printf("Started cpu temp (id: %d, delay: %dms)\n", id, sleep_ms);
+
   while (1) {
     if (pread(file_fd, buffer, sizeof(buffer), 0) == -1) {
       perror("Failed to read file");
@@ -42,7 +45,7 @@ int main(int argc, char *argv[]) {
     measurement_t measurement = {
         .data.float64 = cpu_temp,
         .datatype = FLOAT64,
-        .id = atoi(argv[1]),
+        .id = id,
     };
 
     if (send_userspace_message(&userspace_send_handle, measurement) == -1) {
diff --git a/clients/dummy/src/dummy.c b/clients/dummy/src/dummy.c
index 01581cb..2db5e23 100644
--- a/clients/dummy/src/dummy.c
+++ b/clients/dummy/src/dummy.c
@@ -23,13 +23,16 @@ int main(int argc, char *argv[]) {
 
   double step = 0.0;
 
+  int id = atoi(argv[1]);
   int sleep_ms = atoi(argv[2]);
 
+  printf("Started dummy (id: %d, delay: %dms)\n", id, sleep_ms);
+
   while (1) {
     measurement_t measurement = {
         .data.float64 = sin(step),
         .datatype = FLOAT64,
-        .id = atoi(argv[1]),
+        .id = id,
     };
 
     if (send_userspace_message(&userspace_send_handle, measurement) == -1) {
diff --git a/common/src/userspace_comm.c b/common/src/userspace_comm.c
index 7acbc39..e3999d7 100644
--- a/common/src/userspace_comm.c
+++ b/common/src/userspace_comm.c
@@ -27,10 +27,10 @@ int send_userspace_message(userspace_send_handle_t *handle,
       .measurement = measurement,
   };
 
-  int read = msgsnd(handle->msg_queue_id, &message_queue_message, sizeof(measurement_t),
-         0);
+  int read = msgsnd(handle->msg_queue_id, &message_queue_message,
+                    sizeof(measurement_t), 0);
   if (read == -1) {
-      return -1;
+    return -1;
   }
   return 0;
 }
diff --git a/systemd/clients/cpu-temp.service b/systemd/clients/cpu-temp.service
new file mode 100644
index 0000000..1392566
--- /dev/null
+++ b/systemd/clients/cpu-temp.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=CPU Temp
+After=daemon.service
+
+[Service]
+ExecStart=/usr/bin/cpu-temp 2 250
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/systemd/clients/dummy.service b/systemd/clients/dummy.service
new file mode 100644
index 0000000..9c75c1d
--- /dev/null
+++ b/systemd/clients/dummy.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Dummy
+After=daemon.service
+
+[Service]
+ExecStart=/usr/bin/dummy 1 250
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/systemd/daemon.service b/systemd/daemon.service
new file mode 100644
index 0000000..d8e294a
--- /dev/null
+++ b/systemd/daemon.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/daemon
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
-- 
GitLab