diff of e63e005bc0e8528ed007f229a00e04b84d385ead
e63e005bc0e8528ed007f229a00e04b84d385ead
diff --git a/bin/install.sh b/bin/install.sh
index f44697d..fa18ec1 100755
--- a/bin/install.sh
+++ b/bin/install.sh
@@ -12,6 +12,6 @@ if [ "$(uname)" == "Darwin" ]; then
elif grep murja /etc/passwd; then
echo "Found user murja from /etc/passwd"
else
- useradd --system -U -s /usr/bin/nologin murja
+ useradd --system -U -G systemd-journal -s /usr/bin/nologin murja
echo "Added new user murja"
fi
diff --git a/src/main.lisp b/src/main.lisp
index 72c2779..5408b45 100644
--- a/src/main.lisp
+++ b/src/main.lisp
@@ -12,15 +12,11 @@
(defun stop-server ()
(hunchentoot:stop *server*))
-(defun start-server (&key (port 3010) stream)
+(defun start-server (&key (port 3010))
(format t "Starting murja server~%")
(with-db
(migrate))
- (let ((server (make-instance 'easy-routes:easy-routes-acceptor :port port)))
-
- (when stream
- (setf (hunchentoot:acceptor-access-log-destination server) stream))
-
+ (let ((server (make-instance 'easy-routes:easy-routes-acceptor :port port)))
(when (equalp 3010 port)
(setf *server* server))
@@ -29,12 +25,10 @@
server))
(defun main (&key (port 3010))
- (with-open-file (f murja.routes.settings-routes:*log-file* :direction :output :if-does-not-exist :create :if-exists :append)
- (let ((*standard-output* f))
- (start-server :port port :stream f)
- (handler-case
- (loop do (sleep 1000))
- (condition () nil)))))
+ (start-server :port port)
+ (handler-case
+ (loop do (sleep 1000))
+ (condition () nil)))
(in-package :common-lisp-user)
(defun run ()
diff --git a/src/routes/settings-routes.lisp b/src/routes/settings-routes.lisp
index 266e6c9..23adc3c 100644
--- a/src/routes/settings-routes.lisp
+++ b/src/routes/settings-routes.lisp
@@ -8,7 +8,7 @@
(:import-from :murja.middleware.json :@json)
(:import-from :murja.middleware.db :@transaction)
(:import-from :easy-routes :defroute)
- (:export :update-setting :get-settings :*log-file*))
+ (:export :update-setting :get-settings))
(in-package :murja.routes.settings-routes)
@@ -44,12 +44,13 @@
(setf (hunchentoot:return-code*) 204)
""))
-(defvar *log-file* (asdf:system-relative-pathname :aggressive-murja "murja.log"))
-
(defun get-logs ()
- (->>
- (lisp-fixup:slurp-utf-8 *log-file*)
- (str:lines)))
+ "Shells out to `journalctl -xeu Murja.service` and returns whatever it happens to output"
+ (let ((fstr (make-array '(0) :element-type 'character
+ :fill-pointer 0 :adjustable t)))
+ (with-output-to-string (s fstr)
+ (sb-ext:run-program "/usr/bin/journalctl" (list "-xeu" "Murja.service") :output s ))
+ fstr))
(defroute api-logs ("/api/logs" :method :get
:decorators (@transaction