davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (10/24/90)
Here is a screen blanker for Xenix. It needs some magic escapes in SCO ANSI consoles, and the "security" in SCO UNIX keeps you from getting any useful info from who (maybe root will work), but it works well on that one system. Select a screen with no getty on it, and this program will change to that screen and blank it (including the cursor). #!/bin/sh # shar: Shell Archiver (v1.27) # # Run the following text with /bin/sh to create: # scrnblank # sed 's/^X//' << 'SHAR_EOF' > scrnblank && X#!/bin/sh X X# blank screen for Xenix (@(#)scrnblank - v1.2, 10/23/90 16:12:22) X X# this is the screen number for the blank screen X# it should not be in use, preferably without a getty, X# since the cursor is not restored. ie. tty07 would be 7 XBLANK_SCR=7 X X# This is the time to wait in minutes. X# It may be set from the command line, too Xif [ $# -eq 1 ] Xthen WAIT=$1 Xelse WAIT=5 Xfi # X X# Logic: X# the output of "who -u" is scanned to see if all console X# logins are over N minutes unused. Then the screen is blanked X# by setting cursor off and doing a clear screen. X# This program must be run from a tty X Xwho -u | Xawk ' X$2 ~ /tty[01][0-9]/ { X # Get the time field X time=substr($0, 38, 5) X if (time == "old") continue X split(time, xtime, ":") X idle = 60*xtime[1] + xtime[2] X if (WaitStart < idle) continue X Active = 1 X} X XEND { X # really ugly way to change screens X if (!Active) { X # form the device name X OutDev=sprintf("/dev/tty%02d", BlankScrn) X # switch to the screen for blank use X printf("\r\033[%02dz", BlankScrn-1) > OutDev X # cursor off, CLS X printf("\r\033[=14;10C\f", BlankScrn) > OutDev X } X}' WaitStart=$WAIT BlankScrn=$BLANK_SCR - SHAR_EOF chmod 0555 scrnblank || echo "restore of scrnblank fails" exit 0 -- bill davidsen - davidsen@sixhub.uucp (uunet!crdgw1!sixhub!davidsen) sysop *IX BBS and Public Access UNIX moderator of comp.binaries.ibm.pc and 80386 mailing list "Stupidity, like virtue, is its own reward" -me