gnu: services: Create logs directory.

* gnu/services/web.scm (nginx-activation): Create logs directory so nginx can
log its startup messages before it loads its configuration.
This commit is contained in:
Julien Lepiller 2017-04-30 11:51:12 +02:00
parent 0f4740f4fa
commit 5a10cd4736
No known key found for this signature in database
GPG Key ID: 43111F4520086A0C
2 changed files with 12 additions and 0 deletions

View File

@ -13316,6 +13316,15 @@ used to specify the list of @dfn{server blocks} required on the host and
blocks} to configure. For this to work, use the default value for
@var{config-file}.
At startup, @command{nginx} has not yet read its configuration file, so it
uses a default file to log error messages. If it fails to load its
configuration file, that is where error messages are logged. After the
configuration file is loaded, the default error log file changes as per
configuration. In our case, startup error messages can be found in
@file{/var/run/nginx/logs/error.log}, and after configuration in
@file{/var/log/nginx/error.log}. The second location can be changed with the
@var{log-directory} configuration option.
@end deffn
@deffn {Scheme Variable} nginx-service-type

View File

@ -237,6 +237,9 @@ of index files."
(mkdir-p (string-append #$run-directory "/fastcgi_temp"))
(mkdir-p (string-append #$run-directory "/uwsgi_temp"))
(mkdir-p (string-append #$run-directory "/scgi_temp"))
;; Start-up logs. Once configuration is loaded, nginx switches to
;; log-directory.
(mkdir-p (string-append #$run-directory "/logs"))
;; Check configuration file syntax.
(system* (string-append #$nginx "/sbin/nginx")
"-c" #$(or config-file