mirror of
https://github.com/systemd/systemd.git
synced 2024-11-30 22:03:41 +08:00
b4bf9007cb
If the tty arg is set to "-", agetty uses the stdin fd as the tty. Let's pass the tty this way so that we keep an fd open to the tty at all times. If all fd's to a tty are closed, the kernel might reset the tty which we want to avoid.
65 lines
2.0 KiB
SYSTEMD
65 lines
2.0 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Getty on %I
|
|
Documentation=man:agetty(8) man:systemd-getty-generator(8)
|
|
Documentation=http://0pointer.de/blog/projects/serial-console.html
|
|
After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
|
|
{% if HAVE_SYSV_COMPAT %}
|
|
After=rc-local.service
|
|
{% endif %}
|
|
|
|
# If additional gettys are spawned during boot then we should make
|
|
# sure that this is synchronized before getty.target, even though
|
|
# getty.target didn't actually pull it in.
|
|
Before=getty.target
|
|
IgnoreOnIsolate=yes
|
|
|
|
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
|
|
# rescue.target or starts rescue.service from multi-user.target or
|
|
# graphical.target.
|
|
Conflicts=rescue.service
|
|
Before=rescue.service
|
|
|
|
# On systems without virtual consoles, don't start any getty. Note
|
|
# that serial gettys are covered by serial-getty@.service, not this
|
|
# unit.
|
|
ConditionPathExists=/dev/tty0
|
|
|
|
[Service]
|
|
# the VT is cleared by TTYVTDisallocate
|
|
# The '-o' option value tells agetty to replace 'login' arguments with an
|
|
# option to preserve environment (-p), followed by '--' for safety, and then
|
|
# the entered username.
|
|
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear - $TERM
|
|
Type=idle
|
|
Restart=always
|
|
RestartSec=0
|
|
UtmpIdentifier=%I
|
|
StandardInput=tty
|
|
StandardOutput=tty
|
|
TTYPath=/dev/%I
|
|
TTYReset=yes
|
|
TTYVHangup=yes
|
|
TTYVTDisallocate=yes
|
|
{% if not ENABLE_LOGIND %}
|
|
KillMode=process
|
|
{% endif %}
|
|
IgnoreSIGPIPE=no
|
|
SendSIGHUP=yes
|
|
|
|
# Unset locale for the console getty since the console has problems
|
|
# displaying some internationalized messages.
|
|
UnsetEnvironment=LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
|
|
|
|
[Install]
|
|
WantedBy=getty.target
|
|
DefaultInstance=tty1
|