mirror of https://github.com/nocturn9x/nimd.git
Added working directory and streams options to services
This commit is contained in:
parent
fea5e625e2
commit
611f97d1e6
|
@ -68,6 +68,7 @@ provides = ssh # Dependents can also be providers
|
||||||
restart = always # Other options are: never, onFailure
|
restart = always # Other options are: never, onFailure
|
||||||
restartDelay = 10 # NimD will wait this many seconds before trying to start it again
|
restartDelay = 10 # NimD will wait this many seconds before trying to start it again
|
||||||
supervised = true # This is the default. Disable it if you don't need NimD to watch for it
|
supervised = true # This is the default. Disable it if you don't need NimD to watch for it
|
||||||
|
workDir = /usr/bin # The service's working directory
|
||||||
|
|
||||||
[Logging]
|
[Logging]
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,9 @@ type
|
||||||
depends: seq[Dependency]
|
depends: seq[Dependency]
|
||||||
provides: seq[Dependency]
|
provides: seq[Dependency]
|
||||||
useParentStreams: bool
|
useParentStreams: bool
|
||||||
|
stdin: string
|
||||||
|
stdout: string
|
||||||
|
stderr: string
|
||||||
## These two fields are
|
## These two fields are
|
||||||
## used by the dependency
|
## used by the dependency
|
||||||
## resolver
|
## resolver
|
||||||
|
@ -77,11 +80,12 @@ proc newDependency*(kind: DependencyKind, provider: Service): Dependency =
|
||||||
|
|
||||||
|
|
||||||
proc newService*(name, description: string, kind: ServiceKind, workDir: string, runlevel: RunLevel, exec: string, supervised: bool, restart: RestartKind,
|
proc newService*(name, description: string, kind: ServiceKind, workDir: string, runlevel: RunLevel, exec: string, supervised: bool, restart: RestartKind,
|
||||||
restartDelay: int, depends, provides: seq[Dependency], useParentStreams: bool = false): Service =
|
restartDelay: int, depends, provides: seq[Dependency], useParentStreams: bool = false, stdin, stdout, stderr: string): Service =
|
||||||
## Creates a new service object
|
## Creates a new service object
|
||||||
result = Service(name: name, description: description, kind: kind, workDir: workDir, runLevel: runLevel,
|
result = Service(name: name, description: description, kind: kind, workDir: workDir, runLevel: runLevel,
|
||||||
exec: exec, supervised: supervised, restart: restart, restartDelay: restartDelay,
|
exec: exec, supervised: supervised, restart: restart, restartDelay: restartDelay,
|
||||||
depends: depends, provides: provides, isMarked: false, isResolved: false, useParentStreams: useParentStreams)
|
depends: depends, provides: provides, isMarked: false, isResolved: false, useParentStreams: useParentStreams,
|
||||||
|
stdin: stdin, stdout: stdout, stderr: stderr)
|
||||||
result.provides.add(newDependency(Other, result))
|
result.provides.add(newDependency(Other, result))
|
||||||
|
|
||||||
|
|
||||||
|
|
15
src/main.nim
15
src/main.nim
|
@ -46,23 +46,26 @@ proc addStuff =
|
||||||
var echoer = newService(name="echoer", description="prints owo", exec="/bin/echo owoooooooooo",
|
var echoer = newService(name="echoer", description="prints owo", exec="/bin/echo owoooooooooo",
|
||||||
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
||||||
supervised=false, restart=Never, restartDelay=0,
|
supervised=false, restart=Never, restartDelay=0,
|
||||||
depends=(@[]), provides=(@[]))
|
depends=(@[]), provides=(@[]), stdin="/dev/null", stderr="", stdout="")
|
||||||
var errorer = newService(name="errorer", description="la mamma di gavd",
|
var errorer = newService(name="errorer", description="la mamma di gavd",
|
||||||
exec="/bin/false", supervised=true, restart=OnFailure,
|
exec="/bin/false", supervised=true, restart=OnFailure,
|
||||||
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
||||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]))
|
depends=(@[newDependency(Other, echoer)]), provides=(@[]),
|
||||||
|
stdin="/dev/null", stderr="", stdout="")
|
||||||
var test = newService(name="broken", description="", exec="/bin/echo owo",
|
var test = newService(name="broken", description="", exec="/bin/echo owo",
|
||||||
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
runlevel=Boot, kind=Oneshot, workDir=getCurrentDir(),
|
||||||
supervised=false, restart=Never, restartDelay=0,
|
supervised=false, restart=Never, restartDelay=0,
|
||||||
depends=(@[newDependency(Other, echoer)]), provides=(@[]))
|
depends=(@[newDependency(Other, echoer)]), provides=(@[]),
|
||||||
|
stdin="/dev/null", stderr="", stdout="")
|
||||||
var exiter = newService(name="exiter", description="la mamma di licenziat",
|
var exiter = newService(name="exiter", description="la mamma di licenziat",
|
||||||
exec="/bin/true", supervised=true, restart=Always,
|
exec="/bin/true", supervised=true, restart=Always,
|
||||||
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
restartDelay=5, runlevel=Boot, workDir="/", kind=Simple,
|
||||||
depends=(@[newDependency(Other, errorer)]), provides=(@[]))
|
depends=(@[newDependency(Other, errorer)]), provides=(@[]),
|
||||||
|
stdin="/dev/null", stderr="", stdout="")
|
||||||
var shell = newService(name="login", description="A simple login shell", kind=Simple,
|
var shell = newService(name="login", description="A simple login shell", kind=Simple,
|
||||||
getCurrentDir(), runlevel=Boot, exec="/bin/login -f root",
|
workDir=getCurrentDir(), runlevel=Boot, exec="/bin/login -f root",
|
||||||
supervised=true, restart=Always, restartDelay=0, depends=(@[]), provides=(@[]),
|
supervised=true, restart=Always, restartDelay=0, depends=(@[]), provides=(@[]),
|
||||||
useParentStreams=true
|
useParentStreams=true, stdin="/dev/null", stderr="", stdout=""
|
||||||
)
|
)
|
||||||
addService(errorer)
|
addService(errorer)
|
||||||
addService(echoer)
|
addService(echoer)
|
||||||
|
|
Loading…
Reference in New Issue