Compare commits

...

2 Commits

Author SHA1 Message Date
andreastaliad 2d241c1e7c Restore repo to 90f149e state 2026-05-25 15:32:27 +03:00
andreastaliad f7528f9b03 Revert "added auto-reaping to childeren"
This reverts commit 3f16cb502c.
2026-05-25 15:25:50 +03:00
-39
View File
@@ -6,19 +6,10 @@
#include <dirent.h> #include <dirent.h>
#include <ctype.h> #include <ctype.h>
#include <time.h> #include <time.h>
#include <signal.h>
#include <termios.h>
#define DEFAULT_NUM_LEN 512 #define DEFAULT_NUM_LEN 512
static volatile sig_atomic_t stop_requested = 0;
static void handle_termination(int sig) {
(void)sig;
stop_requested = 1;
}
char *itoa(long num, char *strnum, size_t size){ char *itoa(long num, char *strnum, size_t size){
int isNegative = 0; int isNegative = 0;
@@ -269,27 +260,6 @@ int main(void)
perror("fopen csv"); perror("fopen csv");
return 1; return 1;
} }
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = handle_termination;
sigaction(SIGTERM, &sa, NULL);
sigaction(SIGINT, &sa, NULL);
struct sigaction sa_chld;
memset(&sa_chld, 0, sizeof(sa_chld));
sa_chld.sa_handler = SIG_IGN;
sa_chld.sa_flags = SA_NOCLDWAIT;
sigaction(SIGCHLD, &sa_chld, NULL);
pid_t fork_pgid = getpgrp();
int owns_pgrp = 0;
if (!isatty(STDIN_FILENO) || tcgetpgrp(STDIN_FILENO) != fork_pgid) {
if (setpgid(0, 0) == 0) {
fork_pgid = getpgrp();
owns_pgrp = 1;
}
}
fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,forks_per_sec,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n"); fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,forks_per_sec,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n");
long count = 0; long count = 0;
@@ -309,9 +279,6 @@ int main(void)
} }
while (1) { while (1) {
if (stop_requested) {
break;
}
pid_t pid = fork(); pid_t pid = fork();
if (pid < 0) { if (pid < 0) {
@@ -384,12 +351,6 @@ int main(void)
} }
} }
if (owns_pgrp) {
signal(SIGTERM, SIG_IGN);
signal(SIGINT, SIG_IGN);
killpg(fork_pgid, SIGTERM);
}
fclose(csv); fclose(csv);
return 0; return 0;