|
|
@@ -1,102 +1,13 @@ |
|
|
|
(use-modules (shepherd service)) |
|
|
|
(use-modules (shepherd service) |
|
|
|
((ice-9 ftw) #:select (scandir))) |
|
|
|
|
|
|
|
(define date+%s |
|
|
|
(strftime "%s" (gmtime (current-time)))) |
|
|
|
|
|
|
|
(define bnw |
|
|
|
(make <service> |
|
|
|
#:provides '(bnw) |
|
|
|
#:docstring "Run the Beyesian Network Webserver" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
'("/usr/bin/sudo" "/home/shepherd/run_bnw.sh") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/bnw-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services bnw) |
|
|
|
|
|
|
|
(define gitea |
|
|
|
(make <service> |
|
|
|
#:provides '(gitea) |
|
|
|
#:docstring "Run a Gitea instance" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
'("/usr/bin/sudo" "/home/shepherd/run_gitea.sh") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/gitea-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services gitea) |
|
|
|
|
|
|
|
(define ipfs |
|
|
|
(make <service> |
|
|
|
#:provides '(ipfs) |
|
|
|
#:docstring "Run the IPFS daemon" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
'("/usr/bin/sudo" "/home/shepherd/run_ipfs.sh") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/ipfs-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services ipfs) |
|
|
|
|
|
|
|
(define mcron |
|
|
|
(make <service> |
|
|
|
#:provides '(mcron) |
|
|
|
#:docstring "Run the mcron daemon" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
'("/var/guix/profiles/per-user/shepherd/guix-profile/bin/mcron") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/mcron-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services mcron) |
|
|
|
|
|
|
|
(define power |
|
|
|
(make <service> |
|
|
|
#:provides '(power) |
|
|
|
#:docstring "Run the BXD Power Calculator app" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
;'(system* "/var/guix/profiles/per-user/shepherd/current-guix/bin/guix" "environment" "--ad-hoc" "rn6-assembly-error-app" "--" "/bin/sh -c 'R_LIBS_USER=$GUIX_ENVIRONMENT/site-library/ rn6-assembly-error-app'") |
|
|
|
'("/home/shepherd/run_power.sh") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/power-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services power) |
|
|
|
|
|
|
|
(define rn6app |
|
|
|
(make <service> |
|
|
|
#:provides '(rn6app) |
|
|
|
#:docstring "Run RN6 Assembly Error app" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
;'(system* "/var/guix/profiles/per-user/shepherd/current-guix/bin/guix" "environment" "--ad-hoc" "rn6-assembly-error-app" "--" "/bin/sh -c 'R_LIBS_USER=$GUIX_ENVIRONMENT/site-library/ rn6-assembly-error-app'") |
|
|
|
'("/home/shepherd/run_rn6app.sh") |
|
|
|
#:log-file (string-append "/home/shepherd/logs/rn6app-" |
|
|
|
date+%s ".log")) |
|
|
|
#:stop (make-kill-destructor) |
|
|
|
#:respawn? #t)) |
|
|
|
(register-services rn6app) |
|
|
|
|
|
|
|
(define test-upgrade |
|
|
|
(make <service> |
|
|
|
#:provides '(test-upgrade) |
|
|
|
#:docstring "Build all the services to make sure they work on an upgrade" |
|
|
|
#:start (make-forkexec-constructor |
|
|
|
(when (zero? (system* "guix" "build" "-L" "/home/shepherd/guix-bioinformatics" |
|
|
|
"--no-grafts" "bnw" "gitea" "go-ipfs" "edirect-gn" |
|
|
|
"bxd-power-calculator-app" "rn6-assembly-error-app")) |
|
|
|
(zero? (system* "guix" "system" "-L" "/home/shepherd/guix-bioinformatics" |
|
|
|
"container" "/home/shepherd/guix-bioinformatics/gn/services/bnw-container.scm" |
|
|
|
"--share=/home/shepherd/logs/bnw-server=/var/log" "--network"))) |
|
|
|
#:log-file (string-append "/home/shepherd/logs/test-upgrade-" |
|
|
|
date+%s ".log")) |
|
|
|
#:one-shot? #t)) |
|
|
|
(register-services test-upgrade) |
|
|
|
;; Load all the files in the directory 'init.d' with a suffix '.scm'. |
|
|
|
(for-each |
|
|
|
(lambda (file) |
|
|
|
(load (string-append "init.d/" file))) |
|
|
|
(scandir (string-append (dirname (current-filename)) "/init.d") |
|
|
|
(lambda (file) |
|
|
|
(string-suffix? ".scm" file)))) |
|
|
|
|
|
|
|
;; Send shepherd into the background |
|
|
|
(action 'shepherd 'daemonize) |
|
|
|
|
|
|
|
;; Services to start when shepherd starts: |
|
|
|
;; Add the name of each service that should be started to the list |
|
|
|
;; below passed to 'for-each'. |
|
|
|
(for-each start '(bnw gitea ipfs mcron power rn6app)) |