diff options
Diffstat (limited to 'shepherd')
-rw-r--r-- | shepherd/init.scm | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/shepherd/init.scm b/shepherd/init.scm new file mode 100644 index 0000000..232af4a --- /dev/null +++ b/shepherd/init.scm @@ -0,0 +1,102 @@ +(use-modules (shepherd service)) + +(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) + +;; 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)) |