aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2017-03-09 15:23:02 -0600
committerWilliam Hubbs <w.d.hubbs@gmail.com>2017-03-09 15:23:02 -0600
commitd7bbb0f5830e1ec4df1ec52714d70ac6b0a81878 (patch)
treefd573e4347b4574e118649c4632097d6d3018a71
parent21ca2b746cce67e2b3578fb7015c9d4c243e3a0c (diff)
add agetty service
The agetty service is an alternate way to manage gettys with agetty under Linux which is separate from an external init system.
-rw-r--r--NEWS.md4
-rw-r--r--agetty-guide.md19
-rw-r--r--conf.d/Makefile4
-rw-r--r--conf.d/agetty8
-rw-r--r--init.d/Makefile6
-rw-r--r--init.d/agetty.in31
6 files changed, 67 insertions, 5 deletions
diff --git a/NEWS.md b/NEWS.md
index 6e36b2b2..6f4f9777 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -9,6 +9,10 @@ Since the deptree2dot tool and the perl requirement are completely
optional, the deptree2dot tool has been moved to the support directory.
As a result, the MKTOOLS=yes/no switch has been removed from the makefiles.
+This version adds the agetty service which can be used to spawn
+agetty on a specific terminal. This is currently documented in the
+agetty-guide.md file at the top level of this distribution.
+
## OpenRC-0.23
The tmpfiles.d processing code, which was part of previous versions of
diff --git a/agetty-guide.md b/agetty-guide.md
new file mode 100644
index 00000000..ce46a830
--- /dev/null
+++ b/agetty-guide.md
@@ -0,0 +1,19 @@
+# Setting up the agetty service in OpenRC
+
+The agetty service is an OpenRC specific way to monitor and respawn a
+getty, using agetty, on Linux. To use this method, make sure you aren't
+spawning a getty manager for this port some other way (such as through
+sysvinit/inittab), then run the following commands as root.
+
+Note that [port] refers to the port you are spawning the getty on, and
+not the full path to it. For example, tty0 or ttyS0instead of /dev/tty0
+or /dev/ttyS0.
+tty0 or ttyS0, not the full path to it (for example, tty0 or ttyS0 and
+
+```
+# cd /etc/init.d
+# ln -s agetty agetty.[port]
+# cd /etc/conf.d
+# cp agetty agetty.[port]
+#rc-update add agetty.[port] [runlevel]
+```
diff --git a/conf.d/Makefile b/conf.d/Makefile
index 6c7962b6..64168374 100644
--- a/conf.d/Makefile
+++ b/conf.d/Makefile
@@ -12,8 +12,8 @@ include ${MK}/os.mk
CONF-FreeBSD= ipfw modules moused powerd rarpd savecore syscons
-CONF-Linux= consolefont devfs dmesg hwclock keymaps killprocs modules mtab \
- net-online
+CONF-Linux= agetty consolefont devfs dmesg hwclock keymaps killprocs modules \
+ mtab net-online
CONF-NetBSD= moused rarpd savecore
diff --git a/conf.d/agetty b/conf.d/agetty
new file mode 100644
index 00000000..012eb8de
--- /dev/null
+++ b/conf.d/agetty
@@ -0,0 +1,8 @@
+# Set the baud rate of the terminal line
+#baud=""
+
+# set the terminal type
+#termtype="linux"
+
+# extra options to pass to agetty for this port
+#agetty_options=""
diff --git a/init.d/Makefile b/init.d/Makefile
index 75c88adc..3ecab06b 100644
--- a/init.d/Makefile
+++ b/init.d/Makefile
@@ -21,9 +21,9 @@ SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
modules.in modules-load.in mixer.in nscd.in powerd.in syscons.in
-SRCS-Linux= binfmt.in devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
- killprocs.in modules.in modules-load.in mount-ro.in mtab.in numlock.in \
- procfs.in net-online.in sysfs.in termencoding.in
+SRCS-Linux= agetty.in binfmt.in devfs.in dmesg.in hwclock.in consolefont.in \
+ keymaps.in killprocs.in modules.in modules-load.in mount-ro.in mtab.in \
+ numlock.in procfs.in net-online.in sysfs.in termencoding.in
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
diff --git a/init.d/agetty.in b/init.d/agetty.in
new file mode 100644
index 00000000..297733cb
--- /dev/null
+++ b/init.d/agetty.in
@@ -0,0 +1,31 @@
+#!@SBINDIR@/openrc-run
+# Copyright (c) 2017 The OpenRC Authors.
+# See the Authors file at the top-level directory of this distribution and
+# https://github.com/OpenRC/openrc/blob/master/AUTHORS
+#
+# This file is part of OpenRC. It is subject to the license terms in
+# the LICENSE file found in the top-level directory of this
+# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
+# This file may not be copied, modified, propagated, or distributed
+# except according to the terms contained in the LICENSE file.
+
+description="start agetty on a terminal line"
+supervisor=supervise-daemon
+port="${RC_SVCNAME#*.}"
+term_type="${term_type:-linux}"
+command=/sbin/agetty
+command_args_foreground="${agetty_options} ${port} ${baud} ${termtype}"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ after local
+}
+
+start_pre() {
+ if [ -z "$port" ]; then
+ eerror "${RC_SVCNAME} cannot be started directly. You must create"
+ eerror "symbolic links to it for the ports you want to start"
+ eerror "agetty on and add those to the appropriate runlevels."
+ return 1
+ fi
+}