Daemonize the main web-server thread, in case it crashes

This commit is contained in:
Tony Garnock-Jones 2015-01-21 16:38:38 -05:00
parent e6c9a7c7c0
commit c9576b8547

View File

@ -8,27 +8,31 @@
(require web-server/managers/lru) (require web-server/managers/lru)
(require reloadable) (require reloadable)
(require "signals.rkt") (require "signals.rkt")
(require "daemon.rkt")
(define (start-service* #:port [port 8443] (define (start-service* #:port [port 8443]
#:ssl? [ssl? #t] #:ssl? [ssl? #t]
request-handler-function request-handler-function
on-continuation-expiry) on-continuation-expiry)
(start-restart-signal-watcher) (start-restart-signal-watcher)
(serve/servlet request-handler-function ((daemonize-thunk
#:launch-browser? #f 'main-web-server-thread
#:quit? #f (lambda ()
#:listen-ip #f (serve/servlet request-handler-function
#:port port #:launch-browser? #f
#:manager (make-threshold-LRU-manager #:quit? #f
on-continuation-expiry #:listen-ip #f
;; This value is copied from web-server/servlet-env.rkt: #:port port
(* 128 1024 1024)) #:manager (make-threshold-LRU-manager
#:extra-files-paths (list (build-path (current-directory) on-continuation-expiry
"../static")) ;; This value is copied from web-server/servlet-env.rkt:
#:ssl? ssl? (* 128 1024 1024))
#:ssl-cert (and ssl? (build-path (current-directory) "../server-cert.pem")) #:extra-files-paths (list (build-path (current-directory)
#:ssl-key (and ssl? (build-path (current-directory) "../private-key.pem")) "../static"))
#:servlet-regexp #rx"")) #:ssl? ssl?
#:ssl-cert (and ssl? (build-path (current-directory) "../server-cert.pem"))
#:ssl-key (and ssl? (build-path (current-directory) "../private-key.pem"))
#:servlet-regexp #rx"")))))
(define (start-service #:port [port 8443] (define (start-service #:port [port 8443]
#:ssl? [ssl? #t] #:ssl? [ssl? #t]