tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Determining if a system is in shutdown



In article <55E15DDB.8010504%tk-sls.de@localhost>,
Tilman Kranz  <tilman.kranz%tk-sls.de@localhost> wrote:
>Hello,
>
>for a patch for "nodm" (a lightweight X session manager), I try
>to find out how to determine if a system is currently in shutdown.
>
>The intention is to prevent "nodm" from restarting an X session
>that caught a SIGTERM while the system is in shutdown.
>
>I found this to work on GNU using SVr4 "utmp.h":
>
>  #include<stdlib.h>
>  #include<utmp.h>
>
>  int in_shutdown(void) {
>      struct utmp * ut;
>
>      setutent();
>
>      while ((ut = getutent()) != NULL)
>          if (ut->ut_type == RUN_LVL)
>            /* Current runlevel is pid_t modulo 256.
>               Runlevel 0 means system is in shutdown. */
>            return ut->ut_pid % 256 == 0;
>
>      return -1;
>  }
>
>(This does not work with POSIX "utmpx.h", because there is
>no RUN_LVL there, for obvious reasons).
>
>The question:
>
>My question is if there is an analogous way in BSD to determine
>if a system shutdown is currently scheduled.

Yes, the convention is that if _PATH_NOLOGIN exists, you should not
allow logins.

christos



Home | Main Index | Thread Index | Old Index