summaryrefslogtreecommitdiffstats
path: root/sbin/init/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/init/init.c')
-rw-r--r--sbin/init/init.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/sbin/init/init.c b/sbin/init/init.c
index 8629b90..58e6739 100644
--- a/sbin/init/init.c
+++ b/sbin/init/init.c
@@ -65,6 +65,8 @@ static const char rcsid[] =
#include <syslog.h>
#include <time.h>
#include <ttyent.h>
+#define _ULOG_POSIX_NAMES
+#include <ulog.h>
#include <unistd.h>
#include <sys/reboot.h>
#include <err.h>
@@ -569,10 +571,8 @@ transition(state_t s)
static void
clear_session_logs(session_t *sp)
{
- char *line = sp->se_device + sizeof(_PATH_DEV) - 1;
- if (logout(line))
- logwtmp(line, "", "");
+ ulog_logout(sp->se_device);
}
/*
@@ -775,6 +775,7 @@ single_user(void)
static state_func_t
runcom(void)
{
+ struct utmpx utx;
state_func_t next_transition;
if ((next_transition = run_script(_PATH_RUNCOM)) != 0)
@@ -782,7 +783,9 @@ runcom(void)
runcom_mode = AUTOBOOT; /* the default */
/* NB: should send a message to the session logger to avoid blocking. */
- logwtmp("~", "reboot", "");
+ utx.ut_type = BOOT_TIME;
+ gettimeofday(&utx.ut_tv, NULL);
+ pututxline(&utx);
return (state_func_t) read_ttys;
}
@@ -1487,13 +1490,16 @@ alrm_handler(int sig)
static state_func_t
death(void)
{
+ struct utmpx utx;
session_t *sp;
int i;
pid_t pid;
static const int death_sigs[2] = { SIGTERM, SIGKILL };
/* NB: should send a message to the session logger to avoid blocking. */
- logwtmp("~", "shutdown", "");
+ utx.ut_type = SHUTDOWN_TIME;
+ gettimeofday(&utx.ut_tv, NULL);
+ pututxline(&utx);
/*
* Also revoke the TTY here. Because runshutdown() may reopen
OpenPOWER on IntegriCloud