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
parentinit.d/sysfs: drop modules completely from the dependencies (diff)
downloadopenrc-d7bbb0f5830e1ec4df1ec52714d70ac6b0a81878.zip
openrc-d7bbb0f5830e1ec4df1ec52714d70ac6b0a81878.tar.gz
openrc-d7bbb0f5830e1ec4df1ec52714d70ac6b0a81878.tar.bz2
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 6e36b2b..6f4f977 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 0000000..ce46a83
--- /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 6c7962b..6416837 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 0000000..012eb8d
--- /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 75c88ad..3ecab06 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 0000000..297733c
--- /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
+}