[PATCH] Write pid-file in httpd
Ralf Friedl
Ralf.Friedl at online.de
Sat Jul 5 12:34:57 UTC 2008
This is a patch to create a pid-file when httpd is started.
A pid-file is useful to stop httpd or to send SIGHUP to reload the config.
The filename is passed as a parameter so that multiple instances can run
at the same time, with different pid-files.
It would also be possible to make this configurable.
Regards
Ralf Friedl
--- networking/httpd.c
+++ networking/httpd.c
@@ -2270,6 +2270,7 @@
USE_FEATURE_HTTPD_BASIC_AUTH( r_opt_realm ,)
USE_FEATURE_HTTPD_AUTH_MD5( m_opt_md5 ,)
USE_FEATURE_HTTPD_SETUID( u_opt_setuid ,)
+ p_opt_pidfile ,
p_opt_port ,
p_opt_inetd ,
p_opt_foreground,
@@ -2281,6 +2282,7 @@
OPT_REALM = USE_FEATURE_HTTPD_BASIC_AUTH( (1 <<
r_opt_realm )) + 0,
OPT_MD5 = USE_FEATURE_HTTPD_AUTH_MD5( (1 <<
m_opt_md5 )) + 0,
OPT_SETUID = USE_FEATURE_HTTPD_SETUID( (1 <<
u_opt_setuid )) + 0,
+ OPT_PIDFILE = 1 << p_opt_pidfile,
OPT_PORT = 1 << p_opt_port,
OPT_INETD = 1 << p_opt_inetd,
OPT_FOREGROUND = 1 << p_opt_foreground,
@@ -2294,6 +2296,7 @@
int server_socket = server_socket; /* for gcc */
unsigned opt;
char *url_for_decode;
+ char *pidfilename;
USE_FEATURE_HTTPD_ENCODE_URL_STR(const char *url_for_encode;)
USE_FEATURE_HTTPD_SETUID(const char *s_ugid = NULL;)
USE_FEATURE_HTTPD_SETUID(struct bb_uidgid_t ugid;)
@@ -2317,12 +2320,14 @@
USE_FEATURE_HTTPD_BASIC_AUTH("r:")
USE_FEATURE_HTTPD_AUTH_MD5("m:")
USE_FEATURE_HTTPD_SETUID("u:")
+ "P:"
"p:ifv",
&configFile, &url_for_decode, &home_httpd
USE_FEATURE_HTTPD_ENCODE_URL_STR(, &url_for_encode)
USE_FEATURE_HTTPD_BASIC_AUTH(, &g_realm)
USE_FEATURE_HTTPD_AUTH_MD5(, &pass)
USE_FEATURE_HTTPD_SETUID(, &s_ugid)
+ , &pidfilename
, &bind_addr_or_port
, &verbose
);
@@ -2403,6 +2408,8 @@
#if BB_MMU
if (!(opt & OPT_FOREGROUND))
bb_daemonize(0); /* don't change current directory */
+ if (opt & OPT_PIDFILE)
+ write_pidfile(pidfilename);
mini_httpd(server_socket); /* never returns */
#else
mini_httpd_nommu(server_socket, argc, argv); /* never returns */
More information about the busybox
mailing list