Added PID file path configurability (#282)

* Added PID file path configurability
This commit is contained in:
Hummeltech
2022-05-26 13:36:54 -07:00
committed by GitHub
parent 52308d7996
commit 42e4f0d283
5 changed files with 16 additions and 3 deletions

View File

@ -1,6 +1,7 @@
; BASIC AND SIMPLE CONFIGURATION:
[renderd]
pid_file=/run/renderd/renderd.pid
stats_file=/run/renderd/renderd.stats
socketname=/run/renderd/renderd.sock
num_threads=4

View File

@ -1,6 +1,7 @@
; EXAMPLES FOR BASIC CONFIGURATION OPTIONS
[renderd]
pid_file=/run/renderd/renderd.pid
stats_file=/run/renderd/renderd.stats
socketname=/run/renderd/renderd.sock
num_threads=4
@ -11,6 +12,7 @@ tile_dir=/var/cache/renderd/tiles
;ipport=7654
;num_threads=4
;tile_dir=rados://tiles/etc/ceph/ceph.conf
;pid_file=/run/renderd/renderd_rados.pid
;stats_file=/run/renderd/renderd.stats
;[renderd]
@ -18,6 +20,7 @@ tile_dir=/var/cache/renderd/tiles
;ipport=7654
;num_threads=8
;tile_dir=memcached://
;pid_file=/run/renderd/renderd_memcached.pid
;stats_file=/run/renderd/renderd.stats
; EXAMPLE FOR MAPNIK CONFIGURATION OPTION

View File

@ -43,6 +43,7 @@ typedef struct {
char *mapnik_font_dir;
int mapnik_font_dir_recurse;
char * stats_filename;
const char * pid_filename;
} renderd_config;
typedef struct {

View File

@ -50,6 +50,8 @@
#define XMLCONFIG_DEFAULT "default"
// Maximum number of configurations that mod tile will allow
#define XMLCONFIGS_MAX 10
// Default PID file path
#define PIDFILE "/run/renderd/renderd.pid"
// Mapnik input plugins (will need to adjust for 32 bit libs)
#define MAPNIK_PLUGINS "/usr/local/lib64/mapnik/input"

View File

@ -51,8 +51,6 @@
#endif
// }
#define PIDFILE "/run/renderd/renderd.pid"
#define PFD_LISTEN 0
#define PFD_EXIT_PIPE 1
#define PFD_SPECIAL_COUNT 2
@ -995,6 +993,9 @@ int main(int argc, char **argv)
sprintf(buffer, "%s:stats_file", name);
config_slaves[render_sec].stats_filename = iniparser_getstring(ini,
buffer, NULL);
snprintf(buffer, sizeof(buffer), "%s:pid_file", name);
config_slaves[render_sec].pid_filename = iniparser_getstring(ini,
buffer, (char *) PIDFILE);
if (render_sec == active_slave) {
config.socketname = config_slaves[render_sec].socketname;
@ -1004,6 +1005,8 @@ int main(int argc, char **argv)
config.tile_dir = config_slaves[render_sec].tile_dir;
config.stats_filename
= config_slaves[render_sec].stats_filename;
config.pid_filename
= config_slaves[render_sec].pid_filename;
config.mapnik_plugins_dir = iniparser_getstring(ini,
"mapnik:plugins_dir", (char *) MAPNIK_PLUGINS);
config.mapnik_font_dir = iniparser_getstring(ini,
@ -1030,6 +1033,7 @@ int main(int argc, char **argv)
g_logger(G_LOG_LEVEL_INFO, "config renderd: tile_dir=%s", config.tile_dir);
g_logger(G_LOG_LEVEL_INFO, "config renderd: stats_file=%s", config.stats_filename);
g_logger(G_LOG_LEVEL_INFO, "config renderd: pid_file=%s", config.pid_filename);
g_logger(G_LOG_LEVEL_INFO, "config mapnik: plugins_dir=%s", config.mapnik_plugins_dir);
g_logger(G_LOG_LEVEL_INFO, "config mapnik: font_dir=%s", config.mapnik_font_dir);
g_logger(G_LOG_LEVEL_INFO, "config mapnik: font_dir_recurse=%d", config.mapnik_font_dir_recurse);
@ -1057,6 +1061,8 @@ int main(int argc, char **argv)
config_slaves[i].tile_dir);
g_logger(G_LOG_LEVEL_INFO, "config renderd(%i): stats_file=%s", i,
config_slaves[i].stats_filename);
g_logger(G_LOG_LEVEL_INFO, "config renderd(%i): pid_file=%s", i,
config_slaves[i].pid_filename);
}
for (iconf = 0; iconf < XMLCONFIGS_MAX; ++iconf) {
@ -1098,7 +1104,7 @@ int main(int argc, char **argv)
}
/* write pid file */
FILE *pidfile = fopen(PIDFILE, "w");
FILE *pidfile = fopen(config.pid_filename, "w");
if (pidfile) {
(void) fprintf(pidfile, "%d\n", getpid());