[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [Xen-changelog] Make xenstored reopen its trace file on SIGHUP. This allows one to rotate the
Xen patchbot -unstable wrote: +void reopen_log() +{ + if (!tracefile) + return; + + if (tracefd > 0) + close(tracefd); + tracefd = open(tracefile, O_WRONLY|O_CREAT|O_APPEND, 0600); + if (tracefd < 0) { + perror("Could not open tracefile"); + return; + } + write(tracefd, "\n***\n", strlen("\n***\n")); +} + perror and strlen are not safe to call from a signal handler.I suggest just removing the perror call altogether and replacing strlen with sizeof() - 1. Regards, Anthony Liguori static bool write_messages(struct connection *conn) { int ret; @@ -1498,11 +1514,7 @@ outputpid = true; break; case 'T': - tracefd = open(optarg, O_WRONLY|O_CREAT|O_APPEND, 0600); - if (tracefd < 0) - barf_perror("Could not open tracefile %s", - optarg); - write(tracefd, "\n***\n", strlen("\n***\n")); + tracefile = optarg; break; case 'V': verbose = true; @@ -1511,6 +1523,8 @@ } if (optind != argc) barf("%s: No arguments desired", argv[0]); + + reopen_log(); if (dofork) { openlog("xenstored", 0, LOG_DAEMON); @@ -1577,6 +1591,8 @@ close(STDOUT_FILENO); close(STDERR_FILENO); } + + signal(SIGHUP, reopen_log); #ifdef TESTING signal(SIGUSR1, stop_failtest); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |