Browse Source

shepherd: modularize the services

master
Efraim Flashner 1 year ago
committed by Shepherd
parent
commit
8b001c765e
8 changed files with 98 additions and 98 deletions
  1. +12
    -0
      shepherd/init.d/bnw.scm
  2. +12
    -0
      shepherd/init.d/gitea.scm
  3. +12
    -0
      shepherd/init.d/ipfs.scm
  4. +12
    -0
      shepherd/init.d/mcron.scm
  5. +13
    -0
      shepherd/init.d/power.scm
  6. +13
    -0
      shepherd/init.d/rn6app.scm
  7. +15
    -0
      shepherd/init.d/test-upgrade.scm
  8. +9
    -98
      shepherd/init.scm

+ 12
- 0
shepherd/init.d/bnw.scm View File

@@ -0,0 +1,12 @@
(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 "/home/shepherd/logs/bnw.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services bnw)

(start bnw)

+ 12
- 0
shepherd/init.d/gitea.scm View File

@@ -0,0 +1,12 @@
(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 "/home/shepherd/logs/gitea.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services gitea)

(start gitea)

+ 12
- 0
shepherd/init.d/ipfs.scm View File

@@ -0,0 +1,12 @@
(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 "/home/shepherd/logs/ipfs.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services ipfs)

(start ipfs)

+ 12
- 0
shepherd/init.d/mcron.scm View File

@@ -0,0 +1,12 @@
(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 "/home/shepherd/logs/mcron.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services mcron)

(start mcron)

+ 13
- 0
shepherd/init.d/power.scm View File

@@ -0,0 +1,13 @@
(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 "/home/shepherd/logs/power.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services power)

(start power)

+ 13
- 0
shepherd/init.d/rn6app.scm View File

@@ -0,0 +1,13 @@
(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 "/home/shepherd/logs/rn6app.log")
#:stop (make-kill-destructor)
#:respawn? #t))
(register-services rn6app)

(start rn6app)

+ 15
- 0
shepherd/init.d/test-upgrade.scm View File

@@ -0,0 +1,15 @@
(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
;; First attempt to build all the packages and only afterward attempt to build the containers.
(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 "/home/shepherd/logs/test-upgrade.log")
#:one-shot? #t))
(register-services test-upgrade)

+ 9
- 98
shepherd/init.scm View File

@@ -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))

Loading…
Cancel
Save