diff --git a/Processes/cpu_freq.c b/Processes/cpu_freq.c
index 6efd32cf57cc46751d33ee1414854fc46015fb39..c81b4a090a8767ec9c35656e52a6890ceebc1c01 100644
--- a/Processes/cpu_freq.c
+++ b/Processes/cpu_freq.c
@@ -5,7 +5,7 @@
 #include <fcntl.h>
 #include <string.h>
 
-static const char *PIPE_TWO = "/tmp/pipeTwo";
+static const char *PIPE_TWO = "/tmp/cpu_freq";
 
 static void read_cpu_freq_and_write(int fd)
 {
@@ -25,7 +25,7 @@ static void read_cpu_freq_and_write(int fd)
         char message[128];
         snprintf(message, sizeof(message), "%.3f", freq);
 
-        ssize_t written = write(fd, message, strlen(message) + 1);
+        ssize_t written = write(fd, message, strlen(message));
         if (written < 0) {
             perror("write to pipeTwo");
         } else {
diff --git a/Processes/cpu_temp.c b/Processes/cpu_temp.c
index 9ff26c602c66c144bd5636a123e18c194261f691..5ec6e84e3a0030918ea0af3b6b162a1a1b460fc8 100644
--- a/Processes/cpu_temp.c
+++ b/Processes/cpu_temp.c
@@ -5,7 +5,7 @@
 #include <fcntl.h>
 #include <string.h>
 
-static const char *PIPE_ONE = "/tmp/pipeOne";
+static const char *PIPE_ONE = "/tmp/cpu_temp";
 
 static void read_cpu_temp_and_write(int fd)
 {
@@ -27,7 +27,7 @@ static void read_cpu_temp_and_write(int fd)
 
         // Schreiben, aber NICHT den FD schließen.
         // Nur so viele Bytes schreiben, wie tatsächlich gebraucht werden.
-        ssize_t written = write(fd, message, strlen(message) + 1);
+        ssize_t written = write(fd, message, strlen(message));
         if (written < 0) {
             perror("write to pipeOne");
         } else {
diff --git a/Processes/process_monitoring.sh b/Processes/process_monitoring.sh
index a8b758862ca9030a509c905f4e17ec592e689710..47848e8fb16942342cd25e829702b178cf5f7b5d 100644
--- a/Processes/process_monitoring.sh
+++ b/Processes/process_monitoring.sh
@@ -1,8 +1,15 @@
 #!/bin/bash
 
+#Prozesse starten
 /usr/local/bin/cpu_temp &
 /usr/local/bin/cpu_freq &
 
+sleep 200
+
+# Gleiche Argumente in die main übergeben
+/usr/local/bin/main "$@"
+
+# Damit das Skript nicht sofort beendet, bleibst du in einer Endlosschleife
 while true
 do
     sleep 3600
diff --git a/main b/main
index 98261929dd7adb1a4010b1d036332b20244b822a..9b5e3faf7da65f04e5d1a3cfde69861fbd95f710 100755
Binary files a/main and b/main differ
diff --git a/main.c b/main.c
index bf5a88a53d21fad97d28bba5487c833228217cc1..d7837d1c9265ca195709cac695a4a0953e398a93 100644
--- a/main.c
+++ b/main.c
@@ -60,7 +60,7 @@ void build_crc_checksum(char *package, size_t package_size) {
 
     char tmp[32];
     // z.B. " CRC=0x1A2B3C4D"
-    snprintf(tmp, sizeof(tmp), " CRC=0x%08lX", (unsigned long)c);
+    snprintf(tmp, sizeof(tmp), " CRC=0x%08lX", c);
 
     // ans package anhängen
     strncat(package, tmp, package_size - strlen(package) - 1);
@@ -70,7 +70,7 @@ void send_package(const char *package, const int fdCharDev) {
     char transmitBuf[256] = {0};
 
     // Kopiere Package in transmitBuf
-    snprintf(transmitBuf, sizeof(transmitBuf), package);
+    snprintf(transmitBuf, sizeof(transmitBuf), "%s", package);
 
     const ssize_t written = write(fdCharDev, transmitBuf, strlen(transmitBuf));
     if (written < 0) {
@@ -142,6 +142,7 @@ int main(const int argc, char *argv[]) {
                 return 1;
             }
         }
+        build_crc_checksum(package, sizeof(package));
 
         // Jetzt an /dev/packet_receiver schicken
         if (strlen(package) > 0) {
diff --git a/process-monitor.service b/process-monitor.service
new file mode 100644
index 0000000000000000000000000000000000000000..d09ad71be4f14ca5fc63510e8e56c88f50d65b51
--- /dev/null
+++ b/process-monitor.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Monitoring Processes and sending to character device
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/local/bin/process_monitoring.sh /tmp/cpu_temp /tmp/cpu_freq
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/tracking.service b/tracking.service
deleted file mode 100644
index f4c409b19dbaa5dce6eef7b49ba97f7d30ed1e03..0000000000000000000000000000000000000000
--- a/tracking.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Monitoring Processes
-After=network.target
-
-[Service]
-Type=simple
-ExecStart=/usr/local/bin/process_monitoring.sh
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file