Can not find renderd.init after compilation
bingo-soft opened this issue · 1 comments
I'm following this nice tutorial and try to install tile server. The problem I'm facing is that I can not find renderd.init
after compilation. If I list what is in mod_tile folder after compilation, I see this:
AUTHORS autogen.sh configure libtool render_speedtest
CMakeLists.txt autom4te.cache configure.ac ltmain.sh renderd
COPYING cmake depcomp m4 screenshot.jpg
Makefile compile docs missing src
Makefile.am config.guess etc modules.mk tests
Makefile.in config.log gen_tile_test render_expired utils
README.rst config.status includes render_list
aclocal.m4 config.sub install-sh render_old
So, there is no debian/renderd.init
in there. What may be wrong with that?
Another issues is with the way how renderd is started. In my case, I have a micro-service and multiple business projects, for each project I need to create its own tiles with its own styles. So, I can not simply renderd -f
once and leave it. I need to start and stop renderd
multiple times. In fact I try to do it in the context of WEB request, inside that request I'm using some library that is responsible for spawning processes. But because of this foreground nature of renderd I can not do that, at least it does not work that way. I debugged it and see that my child process goes up to this stage:
** INFO: 16:14:58.927: Rendering daemon started (version 0.6.1)
** INFO: 16:14:58.932: Initialising request queue
** INFO: 16:14:58.932: Parsing config file: /etc/renderd.conf
** INFO: 16:14:58.935: config renderd: unix socketname=/var/run/renderd/renderd.sock
** INFO: 16:14:58.935: config renderd: num_threads=4
** INFO: 16:14:58.935: config renderd: num_slaves=0
** INFO: 16:14:58.935: config renderd: tile_dir=/var/cache/renderd/tiles
** INFO: 16:14:58.935: config renderd: stats_file=/var/run/renderd/renderd.stats
** INFO: 16:14:58.935: config renderd: pid_file=/var/run/renderd/renderd.pid
** INFO: 16:14:58.935: config mapnik: plugins_dir=/usr/lib/mapnik/3.1/input
** INFO: 16:14:58.935: config mapnik: font_dir=/usr/share/fonts
** INFO: 16:14:58.935: config mapnik: font_dir_recurse=0
** INFO: 16:14:58.935: config renderd(0): Active
** INFO: 16:14:58.935: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
** INFO: 16:14:58.935: config renderd(0): num_threads=4
** INFO: 16:14:58.935: config renderd(0): tile_dir=/var/cache/renderd/tiles
** INFO: 16:14:58.935: config renderd(0): stats_file=/var/run/renderd/renderd.stats
** INFO: 16:14:58.935: config renderd(0): pid_file=/var/run/renderd/renderd.pid
** INFO: 16:14:58.935: Initialising unix server socket on /var/run/renderd/renderd.sock
But as a result I do not see renderd.sock
inside /var/run/renderd/
folder. If however, I run renderd -f
from terminal (not from my micro-service), I see two extra lines:
** INFO: 16:14:58.935: Renderd is using mapnik version 3.1.0
** INFO: 16:14:59.896: Running in foreground mode...
And renderd.sock
file is in place and all commands like render_list are working. So, what is so special about running renderd -f
from a child process in the context of WEB request? And can I fix it some way and run renderd in detached background mode? If yes, how can I configure renderd for this case?
Hello @bingo-soft , were you able to figure this out? You are right that using renderd -f
puts the process in the foreground
, simply omit -f
in order to run the process in detached background mode. For your use-case, I would suggest using several map
sections in the /etc/renderd.conf
file rather than several renderd
processes, each with its own XML style definition (see here for an example [likely disregarding all but the first few lines]).