services: agetty: Call default-serial-port only when starting.
* gnu/services/base.scm (agetty-shepherd-service): Call default-serial-port only when starting.
This commit is contained in:
parent
770986d541
commit
c32e3ddedd
@ -937,119 +937,122 @@ to use as the tty. This is primarily useful for headless systems."
|
||||
;; mingetty-shepherd-service).
|
||||
(requirement '(user-processes host-name udev))
|
||||
|
||||
(start #~(let ((tty #$(default-serial-port)))
|
||||
(if tty
|
||||
(make-forkexec-constructor
|
||||
(list #$(file-append util-linux "/sbin/agetty")
|
||||
#$@extra-options
|
||||
#$@(if eight-bits?
|
||||
#~("--8bits")
|
||||
#~())
|
||||
#$@(if no-reset?
|
||||
#~("--noreset")
|
||||
#~())
|
||||
#$@(if remote?
|
||||
#~("--remote")
|
||||
#~())
|
||||
#$@(if flow-control?
|
||||
#~("--flow-control")
|
||||
#~())
|
||||
#$@(if host
|
||||
#~("--host" #$host)
|
||||
#~())
|
||||
#$@(if no-issue?
|
||||
#~("--noissue")
|
||||
#~())
|
||||
#$@(if init-string
|
||||
#~("--init-string" #$init-string)
|
||||
#~())
|
||||
#$@(if no-clear?
|
||||
#~("--noclear")
|
||||
#~())
|
||||
(start #~(lambda args
|
||||
(let ((defaulted-tty #$(or tty (default-serial-port))))
|
||||
(apply
|
||||
(if defaulted-tty
|
||||
(make-forkexec-constructor
|
||||
(list #$(file-append util-linux "/sbin/agetty")
|
||||
#$@extra-options
|
||||
#$@(if eight-bits?
|
||||
#~("--8bits")
|
||||
#~())
|
||||
#$@(if no-reset?
|
||||
#~("--noreset")
|
||||
#~())
|
||||
#$@(if remote?
|
||||
#~("--remote")
|
||||
#~())
|
||||
#$@(if flow-control?
|
||||
#~("--flow-control")
|
||||
#~())
|
||||
#$@(if host
|
||||
#~("--host" #$host)
|
||||
#~())
|
||||
#$@(if no-issue?
|
||||
#~("--noissue")
|
||||
#~())
|
||||
#$@(if init-string
|
||||
#~("--init-string" #$init-string)
|
||||
#~())
|
||||
#$@(if no-clear?
|
||||
#~("--noclear")
|
||||
#~())
|
||||
;;; FIXME This doesn't work as expected. According to agetty(8), if this option
|
||||
;;; is not passed, then the default is 'auto'. However, in my tests, when that
|
||||
;;; option is selected, agetty never presents the login prompt, and the
|
||||
;;; term-ttyS0 service respawns every few seconds.
|
||||
#$@(if local-line
|
||||
#~(#$(match local-line
|
||||
('auto "--local-line=auto")
|
||||
('always "--local-line=always")
|
||||
('never "-local-line=never")))
|
||||
#~())
|
||||
#$@(if tty
|
||||
#~()
|
||||
#~("--keep-baud"))
|
||||
#$@(if extract-baud?
|
||||
#~("--extract-baud")
|
||||
#~())
|
||||
#$@(if skip-login?
|
||||
#~("--skip-login")
|
||||
#~())
|
||||
#$@(if no-newline?
|
||||
#~("--nonewline")
|
||||
#~())
|
||||
#$@(if login-options
|
||||
#~("--login-options" #$login-options)
|
||||
#~())
|
||||
#$@(if chroot
|
||||
#~("--chroot" #$chroot)
|
||||
#~())
|
||||
#$@(if hangup?
|
||||
#~("--hangup")
|
||||
#~())
|
||||
#$@(if keep-baud?
|
||||
#~("--keep-baud")
|
||||
#~())
|
||||
#$@(if timeout
|
||||
#~("--timeout" #$(number->string timeout))
|
||||
#~())
|
||||
#$@(if detect-case?
|
||||
#~("--detect-case")
|
||||
#~())
|
||||
#$@(if wait-cr?
|
||||
#~("--wait-cr")
|
||||
#~())
|
||||
#$@(if no-hints?
|
||||
#~("--nohints?")
|
||||
#~())
|
||||
#$@(if no-hostname?
|
||||
#~("--nohostname")
|
||||
#~())
|
||||
#$@(if long-hostname?
|
||||
#~("--long-hostname")
|
||||
#~())
|
||||
#$@(if erase-characters
|
||||
#~("--erase-chars" #$erase-characters)
|
||||
#~())
|
||||
#$@(if kill-characters
|
||||
#~("--kill-chars" #$kill-characters)
|
||||
#~())
|
||||
#$@(if chdir
|
||||
#~("--chdir" #$chdir)
|
||||
#~())
|
||||
#$@(if delay
|
||||
#~("--delay" #$(number->string delay))
|
||||
#~())
|
||||
#$@(if nice
|
||||
#~("--nice" #$(number->string nice))
|
||||
#~())
|
||||
#$@(if auto-login
|
||||
(list "--autologin" auto-login)
|
||||
'())
|
||||
#$@(if login-program
|
||||
#~("--login-program" #$login-program)
|
||||
#~())
|
||||
#$@(if login-pause?
|
||||
#~("--login-pause")
|
||||
#~())
|
||||
#$(or tty (default-serial-port))
|
||||
#$@(if baud-rate
|
||||
#~(#$baud-rate)
|
||||
#~())
|
||||
#$@(if term
|
||||
#~(#$term)
|
||||
#~()))))
|
||||
(const #f))) ; never start.
|
||||
#$@(if local-line
|
||||
#~(#$(match local-line
|
||||
('auto "--local-line=auto")
|
||||
('always "--local-line=always")
|
||||
('never "-local-line=never")))
|
||||
#~())
|
||||
#$@(if tty
|
||||
#~()
|
||||
#~("--keep-baud"))
|
||||
#$@(if extract-baud?
|
||||
#~("--extract-baud")
|
||||
#~())
|
||||
#$@(if skip-login?
|
||||
#~("--skip-login")
|
||||
#~())
|
||||
#$@(if no-newline?
|
||||
#~("--nonewline")
|
||||
#~())
|
||||
#$@(if login-options
|
||||
#~("--login-options" #$login-options)
|
||||
#~())
|
||||
#$@(if chroot
|
||||
#~("--chroot" #$chroot)
|
||||
#~())
|
||||
#$@(if hangup?
|
||||
#~("--hangup")
|
||||
#~())
|
||||
#$@(if keep-baud?
|
||||
#~("--keep-baud")
|
||||
#~())
|
||||
#$@(if timeout
|
||||
#~("--timeout" #$(number->string timeout))
|
||||
#~())
|
||||
#$@(if detect-case?
|
||||
#~("--detect-case")
|
||||
#~())
|
||||
#$@(if wait-cr?
|
||||
#~("--wait-cr")
|
||||
#~())
|
||||
#$@(if no-hints?
|
||||
#~("--nohints?")
|
||||
#~())
|
||||
#$@(if no-hostname?
|
||||
#~("--nohostname")
|
||||
#~())
|
||||
#$@(if long-hostname?
|
||||
#~("--long-hostname")
|
||||
#~())
|
||||
#$@(if erase-characters
|
||||
#~("--erase-chars" #$erase-characters)
|
||||
#~())
|
||||
#$@(if kill-characters
|
||||
#~("--kill-chars" #$kill-characters)
|
||||
#~())
|
||||
#$@(if chdir
|
||||
#~("--chdir" #$chdir)
|
||||
#~())
|
||||
#$@(if delay
|
||||
#~("--delay" #$(number->string delay))
|
||||
#~())
|
||||
#$@(if nice
|
||||
#~("--nice" #$(number->string nice))
|
||||
#~())
|
||||
#$@(if auto-login
|
||||
(list "--autologin" auto-login)
|
||||
'())
|
||||
#$@(if login-program
|
||||
#~("--login-program" #$login-program)
|
||||
#~())
|
||||
#$@(if login-pause?
|
||||
#~("--login-pause")
|
||||
#~())
|
||||
defaulted-tty
|
||||
#$@(if baud-rate
|
||||
#~(#$baud-rate)
|
||||
#~())
|
||||
#$@(if term
|
||||
#~(#$term)
|
||||
#~())))
|
||||
(const #f)) ; never start.
|
||||
args))))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
|
||||
(define agetty-service-type
|
||||
|
Loading…
Reference in New Issue
Block a user