Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
     5         kx 
     5         kx #include <stdlib.h>
     5         kx #include <stdio.h>
     5         kx #include <signal.h>
     5         kx #include <sys/types.h>
     5         kx #include <unistd.h>
     5         kx 
     5         kx #define PIDFILE                 "/var/run/icmpinfo.pid"
     5         kx 
     5         kx extern char *pname;
     5         kx 
     5         kx void sig_handler(int);
     5         kx void pid_file(void);
     5         kx void pid_kill(void);
     5         kx 
     5         kx void pid_file(void)
     5         kx {
     5         kx     FILE *fp;
     5         kx 
     5         kx     if ((fp = fopen(PIDFILE, "w")) != (FILE *)NULL) {
     5         kx         fprintf(fp, "%d\n", getpid());
     5         kx         fclose(fp);
     5         kx     }
     5         kx     else
     5         kx     {
     5         kx         fprintf(stderr, "\n%s: Could not write PID file `%s', terminating.\n",
     5         kx             pname, PIDFILE);
     5         kx         exit(1);
     5         kx     }
     5         kx     signal(SIGHUP, sig_handler);
     5         kx     signal(SIGINT, sig_handler);
     5         kx     signal(SIGTERM, sig_handler);
     5         kx }
     5         kx 
     5         kx void sig_handler(int sig)
     5         kx {
     5         kx     unlink(PIDFILE);
     5         kx     exit(0);
     5         kx }
     5         kx 
     5         kx void pid_kill(void)
     5         kx {
     5         kx     FILE *fp;
     5         kx     int pid;
     5         kx 
     5         kx     if ((fp = fopen(PIDFILE, "r")) != (FILE *)NULL)
     5         kx     {
     5         kx         if (fscanf(fp, "%d", &pid) == 1)
     5         kx         {
     5         kx             kill(pid, SIGHUP);
     5         kx             sleep(1);
     5         kx         }
     5         kx         fclose(fp);
     5         kx     }
     5         kx }
     5         kx