aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 01a24a9..13d9818 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,10 +1,11 @@
1#include "varnish_mib.h" 1#include "varnish_mib.h"
2#include <unistd.h> 2#include <unistd.h>
3#include <sys/types.h> 3#include <sys/types.h>
4#include <signal.h> 4#include <signal.h>
5#include <string.h>
5 6
6char *progname; 7char *progname;
7 8
8static void pidfile_check(char const *pid_file); 9static void pidfile_check(char const *pid_file);
9static void pidfile_create(char const *pid_file); 10static void pidfile_create(char const *pid_file);
10static int pidfile_remove(char const *pid_file); 11static int pidfile_remove(char const *pid_file);
@@ -171,13 +172,12 @@ main(int argc, char **argv)
171 if (post_config()) 172 if (post_config())
172 exit(1); 173 exit(1);
173 174
174 pidfile_check(pid_file); 175 pidfile_check(pid_file);
175 176
176 if (!foreground) { 177 if (!foreground) {
177 int i;
178 if (daemon(0, 1)) { 178 if (daemon(0, 1)) {
179 fprintf(stderr, "%s: daemon: %s\n", 179 fprintf(stderr, "%s: daemon: %s\n",
180 progname, strerror(errno)); 180 progname, strerror(errno));
181 exit(1); 181 exit(1);
182 } 182 }
183 openlog(progname, LOG_CONS|LOG_PID, LOG_DAEMON); 183 openlog(progname, LOG_CONS|LOG_PID, LOG_DAEMON);
@@ -227,13 +227,12 @@ pidfile_create(char const *pid_file)
227 return; 227 return;
228 228
229 fp = fopen(pid_file, "w"); 229 fp = fopen(pid_file, "w");
230 if (!fp) { 230 if (!fp) {
231 snmp_log(LOG_CRIT, 231 snmp_log(LOG_CRIT,
232 "cannot create pidfile `%s': %s\n", 232 "cannot create pidfile `%s': %s\n",
233 progname,
234 pid_file, 233 pid_file,
235 strerror(errno)); 234 strerror(errno));
236 exit(1); 235 exit(1);
237 } 236 }
238 fprintf(fp, "%lu\n", (unsigned long) getpid()); 237 fprintf(fp, "%lu\n", (unsigned long) getpid());
239 fclose(fp); 238 fclose(fp);
@@ -252,13 +251,13 @@ pidfile_check(char const *pid_file)
252 251
253 fp = fopen(pid_file, "r"); 252 fp = fopen(pid_file, "r");
254 253
255 if (fp) { 254 if (fp) {
256 if (fscanf(fp, "%lu", &pid) != 1) { 255 if (fscanf(fp, "%lu", &pid) != 1) {
257 snmp_log(LOG_ERR, 256 snmp_log(LOG_ERR,
258 "cannot get pid from pidfile `%s'\n", 257 "cannot get pid from pidfile `%s': %s\n",
259 pid_file, 258 pid_file,
260 strerror(errno)); 259 strerror(errno));
261 } else { 260 } else {
262 if (kill(pid, 0) == 0) { 261 if (kill(pid, 0) == 0) {
263 snmp_log(LOG_ERR, 262 snmp_log(LOG_ERR,
264 "%s appears to run with pid %lu. " 263 "%s appears to run with pid %lu. "

Return to:

Send suggestions and report system problems to the System administrator.