nghttpx: Save pid file after daemon() call
This commit is contained in:
parent
3ee7ca2cdd
commit
989d613448
34
src/shrpx.cc
34
src/shrpx.cc
|
@ -232,6 +232,19 @@ void drop_privileges()
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void save_pid()
|
||||||
|
{
|
||||||
|
std::ofstream out(get_config()->pid_file, std::ios::binary);
|
||||||
|
out << getpid() << "\n";
|
||||||
|
out.close();
|
||||||
|
if(!out) {
|
||||||
|
LOG(ERROR) << "Could not save PID to file " << get_config()->pid_file;
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
int event_loop()
|
int event_loop()
|
||||||
{
|
{
|
||||||
|
@ -258,6 +271,10 @@ int event_loop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(get_config()->pid_file) {
|
||||||
|
save_pid();
|
||||||
|
}
|
||||||
|
|
||||||
evconnlistener *evlistener6, *evlistener4;
|
evconnlistener *evlistener6, *evlistener4;
|
||||||
evlistener6 = create_evlistener(listener_handler, AF_INET6);
|
evlistener6 = create_evlistener(listener_handler, AF_INET6);
|
||||||
evlistener4 = create_evlistener(listener_handler, AF_INET);
|
evlistener4 = create_evlistener(listener_handler, AF_INET);
|
||||||
|
@ -291,19 +308,6 @@ int event_loop()
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
|
||||||
void save_pid()
|
|
||||||
{
|
|
||||||
std::ofstream out(get_config()->pid_file, std::ios::binary);
|
|
||||||
out << getpid() << "\n";
|
|
||||||
out.close();
|
|
||||||
if(!out) {
|
|
||||||
LOG(ERROR) << "Could not save PID to file " << get_config()->pid_file;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
// Returns true if regular file or symbolic link |path| exists.
|
// Returns true if regular file or symbolic link |path| exists.
|
||||||
bool conf_exists(const char *path)
|
bool conf_exists(const char *path)
|
||||||
|
@ -962,10 +966,6 @@ int main(int argc, char **argv)
|
||||||
mod_config()->use_syslog = true;
|
mod_config()->use_syslog = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(get_config()->pid_file) {
|
|
||||||
save_pid();
|
|
||||||
}
|
|
||||||
|
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
memset(&act, 0, sizeof(struct sigaction));
|
memset(&act, 0, sizeof(struct sigaction));
|
||||||
act.sa_handler = SIG_IGN;
|
act.sa_handler = SIG_IGN;
|
||||||
|
|
Loading…
Reference in New Issue