@ -54,7 +54,7 @@ let
'' ;
in {
inherit ( job ) description requires wants before partOf environment path restartIfChanged ;
inherit ( job ) description requires wants before partOf environment path restartIfChanged unitConfig ;
after =
( if job . startOn == " s t o p p e d u d e v t r i g g e r " then [ " s y s t e m d - u d e v - s e t t l e . s e r v i c e " ] else
@ -72,40 +72,23 @@ let
[ " m u l t i - u s e r . t a r g e t " ] ) ++ job . wantedBy ;
serviceConfig =
''
$ { job . serviceConfig }
$ { optionalString ( job . preStart != " " && ( job . script != " " || job . exec != " " ) ) ''
ExecStartPre = $ { preStartScript }
'' }
$ { optionalString ( job . preStart != " " && job . script == " " && job . exec == " " ) ''
ExecStart = $ { preStartScript }
'' }
$ { optionalString ( job . script != " " || job . exec != " " ) ''
ExecStart = $ { startScript }
'' }
$ { optionalString ( job . postStart != " " ) ''
ExecStartPost = $ { postStartScript }
'' }
$ { optionalString ( job . preStop != " " ) ''
ExecStop = $ { preStopScript }
'' }
$ { optionalString ( job . postStop != " " ) ''
ExecStopPost = $ { postStopScript }
'' }
$ { if job . script == " " && job . exec == " " then " T y p e = o n e s h o t \n R e m a i n A f t e r E x i t = t r u e " else
if job . daemonType == " f o r k " then " T y p e = f o r k i n g \n G u e s s M a i n P I D = t r u e " else
if job . daemonType == " n o n e " then " " else
throw " i n v a l i d d a e m o n t y p e ` ${ job . daemonType } ' " }
$ { optionalString ( ! job . task && job . respawn ) " R e s t a r t = a l w a y s " }
'' ;
job . serviceConfig
// optionalAttrs ( job . preStart != " " && ( job . script != " " || job . exec != " " ) )
{ ExecStartPre = preStartScript ; }
// optionalAttrs ( job . script != " " || job . exec != " " )
{ ExecStart = startScript ; }
// optionalAttrs ( job . postStart != " " )
{ ExecStartPost = postStartScript ; }
// optionalAttrs ( job . preStop != " " )
{ ExecStop = preStopScript ; }
// optionalAttrs ( job . postStop != " " )
{ ExecStopPost = postStopScript ; }
// ( if job . script == " " && job . exec == " " then { Type = " o n e s h o t " ; RemainAfterExit = true ; } else
if job . daemonType == " f o r k " then { Type = " f o r k i n g " ; GuessMainPID = true ; } else
if job . daemonType == " n o n e " then { } else
throw " i n v a l i d d a e m o n t y p e ` ${ job . daemonType } ' " )
// optionalAttrs ( ! job . task && job . respawn )
{ Restart = " a l w a y s " ; } ;
} ;