From ae92d284ce5a1c60f3c7cb8e336efeed7caf6df0 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Sun, 4 Oct 2026 23:18:40 +0200 Subject: [PATCH 1/2] service creator added --- player-agent-cli.rkt | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/player-agent-cli.rkt b/player-agent-cli.rkt index 928d87d..c29bc7a 100644 --- a/player-agent-cli.rkt +++ b/player-agent-cli.rkt @@ -4,11 +4,13 @@ racket/contract racket/format racket/string + racket/os simple-log "private-player-agent/player-agent-config.rkt" "private-player-agent/player-agent-core.rkt") -(provide run-player-agent-cli) +(provide run-player-agent-cli + create-player-agent-service-file) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Supporting functions @@ -125,6 +127,45 @@ (kill-thread monitor)) ((player-agent-runtime-shutdown! runtime)))))) + + + +(define (create-player-agent-service-file url filename) + (let ((fh (open-output-file filename #:exists? 'replace))) + (for-each (lambda (l) + (displayln l out)) + (list + "[Unit]" + "Description=Racket Web Player Agent" + "After=network.target" + "" + "[Service]" + "Type=simple" + "User=root" + "Group=root" + "" + "WorkingDirectory=/tmp" + "" + (string-append + "ExecStart=/usr/local/bin/racket " + "-e " + "\"(require rkt-web-player/player-agent-cli) " + "(run-player-agent-cli #:server-url \\\"" url "\\\" #:name " (gethostname) ")\"" + ) + "" + "Restart=on-failure" + "RestartSec=5" + "" + "TimeoutStopSec=30" + "" + "[Install]" + "WantedBy=multi-user.target" + ) + ) + (close-output-port fh))) + + + (module+ main (define server-url #f) (define name #f) From 348fe07b482509d5088e0a5212db88d30cd4c7a6 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Sun, 4 Oct 2026 23:32:20 +0200 Subject: [PATCH 2/2] create-player-agent-service-file - issues resolved --- player-agent-cli.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/player-agent-cli.rkt b/player-agent-cli.rkt index c29bc7a..dbbfcf2 100644 --- a/player-agent-cli.rkt +++ b/player-agent-cli.rkt @@ -131,9 +131,9 @@ (define (create-player-agent-service-file url filename) - (let ((fh (open-output-file filename #:exists? 'replace))) + (let ((fh (open-output-file filename #:exists 'replace))) (for-each (lambda (l) - (displayln l out)) + (displayln l fh)) (list "[Unit]" "Description=Racket Web Player Agent" @@ -150,7 +150,7 @@ "ExecStart=/usr/local/bin/racket " "-e " "\"(require rkt-web-player/player-agent-cli) " - "(run-player-agent-cli #:server-url \\\"" url "\\\" #:name " (gethostname) ")\"" + "(run-player-agent-cli #:server-url \\\"" url "\\\" #:name \\\"" (gethostname) "\\\")\"" ) "" "Restart=on-failure"