|
|
|
@ -8,9 +8,9 @@ |
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
|
|
|
#define RUNNING_DIR "/tmp" |
|
|
|
#define LOCK_FILE "/tmp/daemond.lock" |
|
|
|
#define LOG_FILE "/tmp/daemond.log" |
|
|
|
#define RUNNING_DIR "tmp" |
|
|
|
#define LOCK_FILE "tmp/daemond.lock" |
|
|
|
#define LOG_FILE "tmp/daemond.log" |
|
|
|
|
|
|
|
/*
|
|
|
|
* daemon.c
|
|
|
|
@ -33,9 +33,9 @@ |
|
|
|
* MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
void log_signal_message(char *filename,char *message){ |
|
|
|
void log_signal_message(char *message){ |
|
|
|
FILE *logfile;
|
|
|
|
logfile = fopen(filename,"a"); |
|
|
|
logfile = fopen(LOG_FILE,"a"); |
|
|
|
if(!logfile) return;
|
|
|
|
fprintf(logfile,"%s",message);
|
|
|
|
fclose(logfile);
|
|
|
|
@ -70,8 +70,8 @@ void daemonize(){ |
|
|
|
umask(022);
|
|
|
|
|
|
|
|
lfp = open(LOCK_FILE,O_RDWR|O_CREAT,0640);
|
|
|
|
if(lfp < 0) exit(1); |
|
|
|
if(lockf(lfp,F_TLOCK,0) < 0) exit(1); |
|
|
|
if(lfp < 0) { log_signal_message("daemond is allready running !\n");exit(1); } |
|
|
|
if(lockf(lfp,F_TLOCK,0) < 0) { log_signal_message("daemond is allready running\n");exit(1); } |
|
|
|
|
|
|
|
sprintf(str,"%d\n",getpid());
|
|
|
|
write(lfp,str,strlen(str));
|
|
|
|
|